//============================================================
// build by build_insn_fxu_branch_task
// generate fxu branch instruction
//============================================================
task automatic fxu_branch_gen;
input [31:0] i_insn   ;
output       o_branch ;
output       o_likely ;

begin
    o_branch=0;
    o_likely=0;

    casex(i_insn)
    32'b01111000101xxxxxxxxxxxxxxx001110,//BZ.H
    32'b01000101000xxx01xxxxxxxxxxxxxxxx,//BC1T
    32'b01111000111xxxxxxxxxxxxxxx001110,//BZ.D
    32'b01000101000xxx00xxxxxxxxxxxxxxxx,//BC1F
    32'b01111001000xxxxxxxxxxxxxxx001111,//BZ.V
    32'b01111000110xxxxxxxxxxxxxxx001110,//BZ.W
    32'b01111000010xxxxxxxxxxxxxxx001110,//BNZ.W
    32'b01111000111xxxxxxxxxxxxxxx001111,//BNZ.V
    32'b01111000100xxxxxxxxxxxxxxx001110,//BZ.B
    32'b01111000001xxxxxxxxxxxxxxx001110,//BNZ.H
    32'b01111000011xxxxxxxxxxxxxxx001110,//BNZ.D
    32'b01111000000xxxxxxxxxxxxxxx001110://BNZ.B
            begin
            o_branch=1;
            o_likely=0;
            end
    32'b01000101000xxx11xxxxxxxxxxxxxxxx,//BC1TL
    32'b01000101000xxx10xxxxxxxxxxxxxxxx://BC1FL
            begin
            o_branch=1;
            o_likely=1;
            end
endcase

end
endtask

//============================================================
// build by build_insn_step
// generate step signal
//============================================================
function automatic fxu_step_gen;
input  [31:0] i_insn;
begin

    casex(i_insn)
    32'b010011xxxxxxxxxxxxxxxxxxxx100000,//MADD.S
    32'b010011xxxxxxxxxxxxxxxxxxxx100001,//MADD.D
    32'b010011xxxxxxxxxxxxxxxxxxxx100110,//MADD.PS
    32'b010011xxxxxxxxxxxxxxxxxxxx101000,//MSUB.S
    32'b010011xxxxxxxxxxxxxxxxxxxx101001,//MSUB.D
    32'b010011xxxxxxxxxxxxxxxxxxxx101110,//MSUB.PS
    32'b010011xxxxxxxxxxxxxxxxxxxx110000,//NMADD.S
    32'b010011xxxxxxxxxxxxxxxxxxxx110001,//NMADD.D
    32'b010011xxxxxxxxxxxxxxxxxxxx110110,//NMADD.PS
    32'b010011xxxxxxxxxxxxxxxxxxxx111000,//NMSUB.S
    32'b010011xxxxxxxxxxxxxxxxxxxx111001,//NMSUB.D
    32'b010011xxxxxxxxxxxxxxxxxxxx111110,//NMSUB.PS
    32'b01111010110xxxxxxxxxxxxxxx011011,//FMADD.W
    32'b01111010111xxxxxxxxxxxxxxx011011,//FMADD.D
    32'b01111011000xxxxxxxxxxxxxxx011011,//FMSUB.W
    32'b01111011001xxxxxxxxxxxxxxx011011,//FMSUB.D
    32'b01111000100xxxxxxxxxxxxxxx011011,//MADD_Q.H
    32'b01111000101xxxxxxxxxxxxxxx011011,//MADD_Q.W
    32'b01111000110xxxxxxxxxxxxxxx011011,//MADDR_Q.H
    32'b01111000111xxxxxxxxxxxxxxx011011,//MADDR_Q.W
    32'b01111010000xxxxxxxxxxxxxxx010010,//MADDV.B
    32'b01111010001xxxxxxxxxxxxxxx010010,//MADDV.H
    32'b01111010010xxxxxxxxxxxxxxx010010,//MADDV.W
    32'b01111010011xxxxxxxxxxxxxxx010010,//MADDV.D
    32'b01111010000xxxxxxxxxxxxxxx000010,//MADDVI.B
    32'b01111010001xxxxxxxxxxxxxxx000010,//MADDVI.H
    32'b01111010010xxxxxxxxxxxxxxx000010,//MADDVI.W
    32'b01111010011xxxxxxxxxxxxxxx000010,//MADDVI.D
    32'b01111001000xxxxxxxxxxxxxxx011011,//MSUB_Q.H
    32'b01111001001xxxxxxxxxxxxxxx011011,//MSUB_Q.W
    32'b01111001010xxxxxxxxxxxxxxx011011,//MSUBR_Q.H
    32'b01111001011xxxxxxxxxxxxxxx011011,//MSUBR_Q.W
    32'b01111010100xxxxxxxxxxxxxxx010010,//MSUBV.B
    32'b01111010101xxxxxxxxxxxxxxx010010,//MSUBV.H
    32'b01111010110xxxxxxxxxxxxxxx010010,//MSUBV.W
    32'b01111010111xxxxxxxxxxxxxxx010010,//MSUBV.D
    32'b01111010100xxxxxxxxxxxxxxx000010,//MSUBVI.B
    32'b01111010101xxxxxxxxxxxxxxx000010,//MSUBVI.H
    32'b01111010110xxxxxxxxxxxxxxx000010,//MSUBVI.W
    32'b01111010111xxxxxxxxxxxxxxx000010,//MSUBVI.D
    32'b01111000110xxxxxxxxxxxxxxx001111,//BSEL.V
    32'b01111010xxxxxxxxxxxxxxxxxx001011,//BSELI.B
    32'b01111000100xxxxxxxxxxxxxxx010101,//VSHF.B
    32'b01111000101xxxxxxxxxxxxxxx010101,//VSHF.H
    32'b01111000110xxxxxxxxxxxxxxx010101,//VSHF.W
    32'b01111000111xxxxxxxxxxxxxxx010101,//VSHF.D
    32'b01111000100xxxxxxxxxxxxxxx001111,//BMNZ.V
    32'b01111000101xxxxxxxxxxxxxxx001111,//BMZ.V
    32'b01111000xxxxxxxxxxxxxxxxxx001011,//BMNZI.B
    32'b01111001xxxxxxxxxxxxxxxxxx001011,//BMZI.B
    32'b01111011100xxxxxxxxxxxxxxx010011,//BINSL.B
    32'b01111011101xxxxxxxxxxxxxxx010011,//BINSL.H
    32'b01111011110xxxxxxxxxxxxxxx010011,//BINSL.W
    32'b01111011111xxxxxxxxxxxxxxx010011,//BINSL.D
    32'b01111000000xxxxxxxxxxxxxxx010100,//BINSR.B
    32'b01111000001xxxxxxxxxxxxxxx010100,//BINSR.H
    32'b01111000010xxxxxxxxxxxxxxx010100,//BINSR.W
    32'b01111000011xxxxxxxxxxxxxxx010100,//BINSR.D
    32'b0111101011110xxxxxxxxxxxxx011110,//BINSLI.B
    32'b011110101110xxxxxxxxxxxxxx011110,//BINSLI.H
    32'b01111010110xxxxxxxxxxxxxxx011110,//BINSLI.W
    32'b0111101010xxxxxxxxxxxxxxxx011110,//BINSLI.D
    32'b0111101101110xxxxxxxxxxxxx011110,//BINSRI.B
    32'b011110110110xxxxxxxxxxxxxx011110,//BINSRI.H
    32'b01111011010xxxxxxxxxxxxxxx011110,//BINSRI.W
    32'b0111101100xxxxxxxxxxxxxxxx011110,//BINSRI.D
    32'b01111000001xxxxxxxxxxxxxxx010011,//DPADD_S.H
    32'b01111000010xxxxxxxxxxxxxxx010011,//DPADD_S.W
    32'b01111000011xxxxxxxxxxxxxxx010011,//DPADD_S.D
    32'b01111000101xxxxxxxxxxxxxxx010011,//DPADD_U.H
    32'b01111000110xxxxxxxxxxxxxxx010011,//DPADD_U.W
    32'b01111000111xxxxxxxxxxxxxxx010011,//DPADD_U.D
    32'b01111000001xxxxxxxxxxxxxxx000011,//DPADDI_S.H
    32'b01111000010xxxxxxxxxxxxxxx000011,//DPADDI_S.W
    32'b01111000011xxxxxxxxxxxxxxx000011,//DPADDI_S.D
    32'b01111000101xxxxxxxxxxxxxxx000011,//DPADDI_U.H
    32'b01111000110xxxxxxxxxxxxxxx000011,//DPADDI_U.W
    32'b01111000111xxxxxxxxxxxxxxx000011,//DPADDI_U.D
    32'b01111001001xxxxxxxxxxxxxxx010011,//DPSUB_S.H
    32'b01111001010xxxxxxxxxxxxxxx010011,//DPSUB_S.W
    32'b01111001011xxxxxxxxxxxxxxx010011,//DPSUB_S.D
    32'b01111001101xxxxxxxxxxxxxxx010011,//DPSUB_U.H
    32'b01111001110xxxxxxxxxxxxxxx010011,//DPSUB_U.W
    32'b01111001111xxxxxxxxxxxxxxx010011,//DPSUB_U.D
    32'b01111001001xxxxxxxxxxxxxxx000011,//DPSUBI_S.H
    32'b01111001010xxxxxxxxxxxxxxx000011,//DPSUBI_S.W
    32'b01111001011xxxxxxxxxxxxxxx000011,//DPSUBI_S.D
    32'b01111001101xxxxxxxxxxxxxxx000011,//DPSUBI_U.H
    32'b01111001110xxxxxxxxxxxxxxx000011,//DPSUBI_U.W
    32'b01111001111xxxxxxxxxxxxxxx000011://DPSUBI_U.D
        fxu_step_gen=1;
    default:
        fxu_step_gen=0;
    endcase

end
endfunction
//============================================================
// build by build_insn_except_task
// generate fpu except 
//============================================================
function automatic fxu_except_fpu_gen;
input [31:0] i_insn;

begin

    fxu_except_fpu_gen=1'b0;
    casex(i_insn)
    32'b0100011000100000xxxxxxxxxx001110,//CEIL.W.D
    32'b0100011000000000xxxxxxxxxx001110,//CEIL.W.S
    32'b0100011000100000xxxxxxxxxx010101,//RECIP.D
    32'b0100011000100000xxxxxxxxxx100100,//CVT.W.D
    32'b0100011000000000xxxxxxxxxx001000,//ROUND.L.S
    32'b0100011000000000xxxxxxxxxx010110,//RSQRT.S
    32'b0100011000100000xxxxxxxxxx001000,//ROUND.L.D
    32'b0100011000000000xxxxxxxxxx100100,//CVT.W.S
    32'b0100011000000000xxxxxxxxxx010101,//RECIP.S
    32'b0100011000100000xxxxxxxxxx010110,//RSQRT.D
    32'b0100011000100000xxxxxxxxxx001100,//ROUND.W.D
    32'b0100011000000000xxxxxxxxxx001100,//ROUND.W.S
    32'b0100011000100000xxxxxxxxxx001111,//FLOOR.W.D
    32'b0100011000000000xxxxxxxxxx000100,//SQRT.S
    32'b0100011000100000xxxxxxxxxx001010,//CEIL.L.D
    32'b0100011011000000xxxxxxxxxx101000,//CVT.S.PL
    32'b0100011000100000xxxxxxxxxx000100,//SQRT.D
    32'b0100011000000000xxxxxxxxxx001111,//FLOOR.W.S
    32'b0100011011000000xxxxxxxxxx100000,//CVT.S.PU
    32'b0100011000000000xxxxxxxxxx001010,//CEIL.L.S
    32'b010011xxxxxxxxxxxxxxxxxxxx100110,//MADD.PS
    32'b0100011000100000xxxxxxxxxx100101,//CVT.L.D
    32'b010011xxxxxxxxxxxxxxxxxxxx110000,//NMADD.S
    32'b0100011000000000xxxxxxxxxx100101,//CVT.L.S
    32'b010011xxxxxxxxxxxxxxxxxxxx110001,//NMADD.D
    32'b010011xxxxxxxxxxxxxxxxxxxx111001,//NMSUB.D
    32'b01000110001xxxxxxxxxxxxxxx000011,//DIV.D
    32'b010011xxxxxxxxxxxxxxxxxxxx111000,//NMSUB.S
    32'b01000110000xxxxxxxxxxxxxxx000011,//DIV.S
    32'b01000110110xxxxxxxxxxxxx0011xxxx,//C.cond.PS
    32'b01000110000xxxxxxxxxxxxx0011xxxx,//C.cond.S
    32'b0100011000000000xxxxxxxxxx001001,//TRUNC.L.S
    32'b0100011000100000xxxxxxxxxx001001,//TRUNC.L.D
    32'b01000110001xxxxxxxxxxxxx0011xxxx,//C.cond.D
    32'b01000110110xxxxxxxxxxxxxxx000000,//ADD.PS
    32'b010011xxxxxxxxxxxxxxxxxxxx100000,//MADD.S
    32'b0100011000000000xxxxxxxxxx000111,//NEG.S
    32'b010011xxxxxxxxxxxxxxxxxxxx111110,//NMSUB.PS
    32'b0100011000100000xxxxxxxxxx001101,//TRUNC.W.D
    32'b0100011000100000xxxxxxxxxx000111,//NEG.D
    32'b010011xxxxxxxxxxxxxxxxxxxx100001,//MADD.D
    32'b0100011000000000xxxxxxxxxx001101,//TRUNC.W.S
    32'b01000110000xxxxxxxxxxxxxxx000001,//SUB.S
    32'b01000110001xxxxxxxxxxxxxxx000001,//SUB.D
    32'b0100011000000000xxxxxxxxxx100001,//CVT.D.S
    32'b01000110110xxxxxxxxxxxxxxx000001,//SUB.PS
    32'b0100011011000000xxxxxxxxxx000111,//NEG.PS
    32'b01000110110xxxxxxxxxxxxxxx000010,//MUL.PS
    32'b0100011011000000xxxxxxxxxx000101,//ABS.PS
    32'b0100011000000000xxxxxxxxxx001011,//FLOOR.L.S
    32'b0100011010000000xxxxxxxxxx100000,//CVT.S.W
    32'b010011xxxxxxxxxxxxxxxxxxxx101001,//MSUB.D
    32'b0100011010100000xxxxxxxxxx100000,//CVT.S.L
    32'b0100011000100000xxxxxxxxxx001011,//FLOOR.L.D
    32'b0100011000100000xxxxxxxxxx100000,//CVT.S.D
    32'b01000110000xxxxxxxxxxxxxxx100110,//CVT.PS.S
    32'b010011xxxxxxxxxxxxxxxxxxxx110110,//NMADD.PS
    32'b01000110000xxxxxxxxxxxxxxx000000,//ADD.S
    32'b01000110000xxxxxxxxxxxxxxx000010,//MUL.S
    32'b0100011000000000xxxxxxxxxx000101,//ABS.S
    32'b01000110001xxxxxxxxxxxxxxx000000,//ADD.D
    32'b0100011000100000xxxxxxxxxx000101,//ABS.D
    32'b01000110001xxxxxxxxxxxxxxx000010,//MUL.D
    32'b010011xxxxxxxxxxxxxxxxxxxx101110,//MSUB.PS
    32'b0100011010000000xxxxxxxxxx100001,//CVT.D.W
    32'b0100011010100000xxxxxxxxxx100001,//CVT.D.L
    32'b010011xxxxxxxxxxxxxxxxxxxx101000://MSUB.S
        fxu_except_fpu_gen=1'b1;
    endcase

end
endfunction

//============================================================
// build by build_insn_except_task
// generate msa except 
//============================================================
function automatic fxu_except_msa_gen;
input [31:0] i_insn;

begin

    fxu_except_msa_gen=1'b0;
    casex(i_insn)
    32'b0111101111010111xxxxxxxxxx001111,//FEXUPR.D
    32'b0111101111000011xxxxxxxxxx001111,//FRINT.D
    32'b0111101111000010xxxxxxxxxx001111,//FRINT.W
    32'b0111101111001010xxxxxxxxxx001111,//FFINT_S.W
    32'b01111001000xxxxxxxxxxxxxxx011100,//FCLE.W
    32'b01111001001xxxxxxxxxxxxxxx011100,//FCLE.D
    32'b01111011110xxxxxxxxxxxxxxx011011,//FMAX_A.W
    32'b01111001101xxxxxxxxxxxxxxx011011,//FADD.D
    32'b01111000001xxxxxxxxxxxxxxx011100,//FMIN.D
    32'b01111001100xxxxxxxxxxxxxxx011011,//FADD.W
    32'b01111011111xxxxxxxxxxxxxxx011011,//FMAX_A.D
    32'b01111000000xxxxxxxxxxxxxxx011100,//FMIN.W
    32'b0111101111010101xxxxxxxxxx001111,//FEXUPL.D
    32'b0111101111001000xxxxxxxxxx001111,//FTINT_S.W
    32'b0111101111001011xxxxxxxxxx001111,//FFINT_S.D
    32'b01111001100xxxxxxxxxxxxxxx011100,//FCEQU.W
    32'b01111011100xxxxxxxxxxxxxxx011011,//FMAX.W
    32'b0111101111010100xxxxxxxxxx001111,//FEXUPL.W
    32'b0111101111001001xxxxxxxxxx001111,//FTINT_S.D
    32'b01111011101xxxxxxxxxxxxxxx011011,//FMAX.D
    32'b01111001101xxxxxxxxxxxxxxx011100,//FCEQU.D
    32'b0111101111001111xxxxxxxxxx001111,//FFINT_U.D
    32'b01111001111xxxxxxxxxxxxxxx011011,//FSUB.D
    32'b0111101111001110xxxxxxxxxx001111,//FFINT_U.W
    32'b01111001110xxxxxxxxxxxxxxx011011,//FSUB.W
    32'b0111101111000101xxxxxxxxxx001111,//FLOG2.D
    32'b01111011000xxxxxxxxxxxxxxx011011,//FMSUB.W
    32'b01111010100xxxxxxxxxxxxxxx011100,//FEXDO.H
    32'b0111101111000100xxxxxxxxxx001111,//FLOG2.W
    32'b0111101111001100xxxxxxxxxx001111,//FTINT_U.W
    32'b01111010011xxxxxxxxxxxxxxx011100,//FTQ.W
    32'b01111011001xxxxxxxxxxxxxxx011011,//FMSUB.D
    32'b01111010000xxxxxxxxxxxxxxx011100,//FCLEU.W
    32'b01111000101xxxxxxxxxxxxxxx011100,//FCEQ.D
    32'b01111000011xxxxxxxxxxxxxxx011100,//FMIN_A.D
    32'b01111000100xxxxxxxxxxxxxxx011100,//FCEQ.W
    32'b01111000010xxxxxxxxxxxxxxx011100,//FMIN_A.W
    32'b0111101111010110xxxxxxxxxx001111,//FEXUPR.W
    32'b01111001011xxxxxxxxxxxxxxx011100,//FCUN.D
    32'b0111101111001101xxxxxxxxxx001111,//FTINT_U.D
    32'b01111010111xxxxxxxxxxxxxxx011011,//FMADD.D
    32'b01111010000xxxxxxxxxxxxxxx011011,//FMUL.W
    32'b01111001111xxxxxxxxxxxxxxx011100,//FCLTU.D
    32'b01111010001xxxxxxxxxxxxxxx011011,//FMUL.D
    32'b01111010010xxxxxxxxxxxxxxx011100,//FTQ.H
    32'b01111001110xxxxxxxxxxxxxxx011100,//FCLTU.W
    32'b01111011010xxxxxxxxxxxxxxx011011,//FEXP2.W
    32'b0111101111000000xxxxxxxxxx001111,//FSQRT.W
    32'b0111101111000001xxxxxxxxxx001111,//FSQRT.D
    32'b01111011011xxxxxxxxxxxxxxx011011,//FEXP2.D
    32'b01111001010xxxxxxxxxxxxxxx011100,//FCUN.W
    32'b01111010110xxxxxxxxxxxxxxx011011,//FMADD.W
    32'b01111000110xxxxxxxxxxxxxxx011100,//FCLT.W
    32'b01111000111xxxxxxxxxxxxxxx011100,//FCLT.D
    32'b01111010001xxxxxxxxxxxxxxx011100,//FCLEU.D
    32'b01111010011xxxxxxxxxxxxxxx011011,//FDIV.D
    32'b01111010010xxxxxxxxxxxxxxx011011://FDIV.W
        fxu_except_msa_gen=1'b1;
    endcase

end
endfunction

//============================================================
// build by build_insn_access
// generate access enb
//============================================================
task automatic fxu_acc_enb_gen;
    input [31:0] i_insn;
    output o_rh_fa;
    output o_rh_fb;
    output o_rh_fc;
    output o_wh_fx;
    output o_rl_fa;
    output o_rl_fb;
    output o_rl_fc;
    output o_wl_fx;
    output o_rq_ma;
    output o_rq_mb;
    output o_rq_mc;
    output o_wq_mx;

    begin
    o_rh_fa=0;
    o_rh_fb=0;
    o_rh_fc=0;
    o_wh_fx=0;
    o_rl_fa=0;
    o_rl_fb=0;
    o_rl_fc=0;
    o_wl_fx=0;
    o_rq_ma=0;
    o_rq_mb=0;
    o_rq_mc=0;
    o_wq_mx=0;

    casex(i_insn)
    32'b01000110000xxxxxxxxxxxxxxx100110://CVT.PS.S
        begin
        o_rl_fa=1;
        o_rl_fb=1;
        o_wh_fx=1;
        o_wl_fx=1;
        end
    32'b01000110000xxxxxxxxxxxxxxx000000,//ADD.S
    32'b01000110000xxxxxxxxxxxxxxx000011,//DIV.S
    32'b01000110000xxx00xxxxxxxxxx010001,//MOVF.S
    32'b01000110000xxxxxxxxxxxxxxx010011,//MOVN.S
    32'b01000110000xxx01xxxxxxxxxx010001,//MOVT.S
    32'b01000110000xxxxxxxxxxxxxxx010010,//MOVZ.S
    32'b01000110000xxxxxxxxxxxxxxx000010,//MUL.S
    32'b01000110000xxxxxxxxxxxxxxx000001://SUB.S
        begin
        o_rl_fa=1;
        o_rl_fb=1;
        o_wl_fx=1;
        end
    32'b01000110000xxxxxxxxxxxxx0011xxxx://C.cond.S
        begin
        o_rl_fa=1;
        o_rl_fb=1;
        end
    32'b01000100011xxxxxxxxxx00000000000://MFHC1
        begin
        o_rh_fa=1;
        end
    32'b0100011000000000xxxxxxxxxx001010,//CEIL.L.S
    32'b0100011000000000xxxxxxxxxx100001,//CVT.D.S
    32'b0100011010000000xxxxxxxxxx100001,//CVT.D.W
    32'b0100011000000000xxxxxxxxxx100101,//CVT.L.S
    32'b0100011000000000xxxxxxxxxx001011,//FLOOR.L.S
    32'b0100011000000000xxxxxxxxxx001000,//ROUND.L.S
    32'b0100011000000000xxxxxxxxxx001001://TRUNC.L.S
        begin
        o_rl_fa=1;
        o_wh_fx=1;
        o_wl_fx=1;
        end
    32'b01111001011xxxxxxxxxxxxxxx001111,//LD.V
    32'b01111001000xxxxxxxxxxxxxxx001110,//LDI.B
    32'b01111001011xxxxxxxxxxxxxxx001110,//LDI.D
    32'b01111001001xxxxxxxxxxxxxxx001110,//LDI.H
    32'b01111001010xxxxxxxxxxxxxxx001110,//LDI.W
    32'b01111001100xxxxxxxxxxxxxxx001111,//LDX.V
    32'b0111101110000000xxxxxxxxxx001111,//MVFG.B
    32'b0111101110000001xxxxxxxxxx001111,//MVFG.H
    32'b0111101110000010xxxxxxxxxx001111://MVFG.W
        begin
        o_wq_mx=1;
        end
    32'b01000110001xxxxxxxxxxxxx0011xxxx,//C.cond.D
    32'b01000110110xxxxxxxxxxxxx0011xxxx://C.cond.PS
        begin
        o_rh_fa=1;
        o_rh_fb=1;
        o_rl_fa=1;
        o_rl_fb=1;
        end
    32'b01000100000xxxxxxxxxx00000000000,//MFC1
    32'b010011xxxxxxxxxxxxxxx00000001000://SWXC1
        begin
        o_rl_fa=1;
        end
    32'b01000110001xxxxxxxxxxxxxxx000000,//ADD.D
    32'b01000110110xxxxxxxxxxxxxxx000000,//ADD.PS
    32'b010011xxxxxxxxxxxxxxxxxxxx011110,//ALNV.PS
    32'b01000110001xxxxxxxxxxxxxxx000011,//DIV.D
    32'b01000110001xxx00xxxxxxxxxx010001,//MOVF.D
    32'b01000110110xxx00xxxxxxxxxx010001,//MOVF.PS
    32'b01000110001xxxxxxxxxxxxxxx010011,//MOVN.D
    32'b01000110110xxxxxxxxxxxxxxx010011,//MOVN.PS
    32'b01000110001xxx01xxxxxxxxxx010001,//MOVT.D
    32'b01000110110xxx01xxxxxxxxxx010001,//MOVT.PS
    32'b01000110001xxxxxxxxxxxxxxx010010,//MOVZ.D
    32'b01000110110xxxxxxxxxxxxxxx010010,//MOVZ.PS
    32'b01000110001xxxxxxxxxxxxxxx000010,//MUL.D
    32'b01000110110xxxxxxxxxxxxxxx000010,//MUL.PS
    32'b01000110110xxxxxxxxxxxxxxx101100,//PLL.PS
    32'b01000110110xxxxxxxxxxxxxxx101101,//PLU.PS
    32'b01000110110xxxxxxxxxxxxxxx101110,//PUL.PS
    32'b01000110110xxxxxxxxxxxxxxx101111,//PUU.PS
    32'b01000110001xxxxxxxxxxxxxxx000001,//SUB.D
    32'b01000110110xxxxxxxxxxxxxxx000001://SUB.PS
        begin
        o_rh_fa=1;
        o_rh_fb=1;
        o_rl_fa=1;
        o_rl_fb=1;
        o_wh_fx=1;
        o_wl_fx=1;
        end
    32'b01111001000xxxxxxxxxxxxxxx010000,//ADDS_A.B
    32'b01111001011xxxxxxxxxxxxxxx010000,//ADDS_A.D
    32'b01111001001xxxxxxxxxxxxxxx010000,//ADDS_A.H
    32'b01111001010xxxxxxxxxxxxxxx010000,//ADDS_A.W
    32'b01111001100xxxxxxxxxxxxxxx010000,//ADDS_S.B
    32'b01111001111xxxxxxxxxxxxxxx010000,//ADDS_S.D
    32'b01111001101xxxxxxxxxxxxxxx010000,//ADDS_S.H
    32'b01111001110xxxxxxxxxxxxxxx010000,//ADDS_S.W
    32'b01111010000xxxxxxxxxxxxxxx010000,//ADDS_U.B
    32'b01111010011xxxxxxxxxxxxxxx010000,//ADDS_U.D
    32'b01111010001xxxxxxxxxxxxxxx010000,//ADDS_U.H
    32'b01111010010xxxxxxxxxxxxxxx010000,//ADDS_U.W
    32'b01111000000xxxxxxxxxxxxxxx010000,//ADDV.B
    32'b01111000011xxxxxxxxxxxxxxx010000,//ADDV.D
    32'b01111000001xxxxxxxxxxxxxxx010000,//ADDV.H
    32'b01111000010xxxxxxxxxxxxxxx010000,//ADDV.W
    32'b01111000100xxxxxxxxxxxxxxx010000,//ADD_A.B
    32'b01111000111xxxxxxxxxxxxxxx010000,//ADD_A.D
    32'b01111000101xxxxxxxxxxxxxxx010000,//ADD_A.H
    32'b01111000110xxxxxxxxxxxxxxx010000,//ADD_A.W
    32'b01111000000xxxxxxxxxxxxxxx001111,//AND.V
    32'b01111011000xxxxxxxxxxxxxxx010000,//ASUB_S.B
    32'b01111011011xxxxxxxxxxxxxxx010000,//ASUB_S.D
    32'b01111011001xxxxxxxxxxxxxxx010000,//ASUB_S.H
    32'b01111011010xxxxxxxxxxxxxxx010000,//ASUB_S.W
    32'b01111011100xxxxxxxxxxxxxxx010000,//ASUB_U.B
    32'b01111011111xxxxxxxxxxxxxxx010000,//ASUB_U.D
    32'b01111011101xxxxxxxxxxxxxxx010000,//ASUB_U.H
    32'b01111011110xxxxxxxxxxxxxxx010000,//ASUB_U.W
    32'b01111000100xxxxxxxxxxxxxxx010010,//AVE_S.B
    32'b01111000111xxxxxxxxxxxxxxx010010,//AVE_S.D
    32'b01111000101xxxxxxxxxxxxxxx010010,//AVE_S.H
    32'b01111000110xxxxxxxxxxxxxxx010010,//AVE_S.W
    32'b01111001000xxxxxxxxxxxxxxx010010,//AVE_U.B
    32'b01111001011xxxxxxxxxxxxxxx010010,//AVE_U.D
    32'b01111001001xxxxxxxxxxxxxxx010010,//AVE_U.H
    32'b01111001010xxxxxxxxxxxxxxx010010,//AVE_U.W
    32'b01111000100xxxxxxxxxxxxxxx010100,//BCLR.B
    32'b01111000111xxxxxxxxxxxxxxx010100,//BCLR.D
    32'b01111000101xxxxxxxxxxxxxxx010100,//BCLR.H
    32'b01111000110xxxxxxxxxxxxxxx010100,//BCLR.W
    32'b01111001100xxxxxxxxxxxxxxx010100,//BNEG.B
    32'b01111001111xxxxxxxxxxxxxxx010100,//BNEG.D
    32'b01111001101xxxxxxxxxxxxxxx010100,//BNEG.H
    32'b01111001110xxxxxxxxxxxxxxx010100,//BNEG.W
    32'b01111001000xxxxxxxxxxxxxxx010100,//BSET.B
    32'b01111001011xxxxxxxxxxxxxxx010100,//BSET.D
    32'b01111001001xxxxxxxxxxxxxxx010100,//BSET.H
    32'b01111001010xxxxxxxxxxxxxxx010100,//BSET.W
    32'b01111010000xxxxxxxxxxxxxxx010100,//CEQ.B
    32'b01111010011xxxxxxxxxxxxxxx010100,//CEQ.D
    32'b01111010001xxxxxxxxxxxxxxx010100,//CEQ.H
    32'b01111010010xxxxxxxxxxxxxxx010100,//CEQ.W
    32'b01111011000xxxxxxxxxxxxxxx010100,//CLE_S.B
    32'b01111011011xxxxxxxxxxxxxxx010100,//CLE_S.D
    32'b01111011001xxxxxxxxxxxxxxx010100,//CLE_S.H
    32'b01111011010xxxxxxxxxxxxxxx010100,//CLE_S.W
    32'b01111000000xxxxxxxxxxxxxxx010101,//CLE_U.B
    32'b01111000011xxxxxxxxxxxxxxx010101,//CLE_U.D
    32'b01111000001xxxxxxxxxxxxxxx010101,//CLE_U.H
    32'b01111000010xxxxxxxxxxxxxxx010101,//CLE_U.W
    32'b01111010100xxxxxxxxxxxxxxx010100,//CLT_S.B
    32'b01111010111xxxxxxxxxxxxxxx010100,//CLT_S.D
    32'b01111010101xxxxxxxxxxxxxxx010100,//CLT_S.H
    32'b01111010110xxxxxxxxxxxxxxx010100,//CLT_S.W
    32'b01111011100xxxxxxxxxxxxxxx010100,//CLT_U.B
    32'b01111011111xxxxxxxxxxxxxxx010100,//CLT_U.D
    32'b01111011101xxxxxxxxxxxxxxx010100,//CLT_U.H
    32'b01111011110xxxxxxxxxxxxxxx010100,//CLT_U.W
    32'b01111011011xxxxxxxxxxxxxxx010010,//DOTP_S.D
    32'b01111011001xxxxxxxxxxxxxxx010010,//DOTP_S.H
    32'b01111011010xxxxxxxxxxxxxxx010010,//DOTP_S.W
    32'b01111011111xxxxxxxxxxxxxxx010010,//DOTP_U.D
    32'b01111011101xxxxxxxxxxxxxxx010010,//DOTP_U.H
    32'b01111011110xxxxxxxxxxxxxxx010010,//DOTP_U.W
    32'b01111001101xxxxxxxxxxxxxxx011011,//FADD.D
    32'b01111001100xxxxxxxxxxxxxxx011011,//FADD.W
    32'b01111000101xxxxxxxxxxxxxxx011100,//FCEQ.D
    32'b01111000100xxxxxxxxxxxxxxx011100,//FCEQ.W
    32'b01111001101xxxxxxxxxxxxxxx011100,//FCEQU.D
    32'b01111001100xxxxxxxxxxxxxxx011100,//FCEQU.W
    32'b01111001001xxxxxxxxxxxxxxx011100,//FCLE.D
    32'b01111001000xxxxxxxxxxxxxxx011100,//FCLE.W
    32'b01111010001xxxxxxxxxxxxxxx011100,//FCLEU.D
    32'b01111010000xxxxxxxxxxxxxxx011100,//FCLEU.W
    32'b01111000111xxxxxxxxxxxxxxx011100,//FCLT.D
    32'b01111000110xxxxxxxxxxxxxxx011100,//FCLT.W
    32'b01111001111xxxxxxxxxxxxxxx011100,//FCLTU.D
    32'b01111001110xxxxxxxxxxxxxxx011100,//FCLTU.W
    32'b01111001011xxxxxxxxxxxxxxx011100,//FCUN.D
    32'b01111001010xxxxxxxxxxxxxxx011100,//FCUN.W
    32'b01111010011xxxxxxxxxxxxxxx011011,//FDIV.D
    32'b01111010010xxxxxxxxxxxxxxx011011,//FDIV.W
    32'b01111010100xxxxxxxxxxxxxxx011100,//FEXDO.H
    32'b01111010101xxxxxxxxxxxxxxx011100,//FEXDO.W
    32'b01111011011xxxxxxxxxxxxxxx011011,//FEXP2.D
    32'b01111011010xxxxxxxxxxxxxxx011011,//FEXP2.W
    32'b01111011101xxxxxxxxxxxxxxx011011,//FMAX.D
    32'b01111011100xxxxxxxxxxxxxxx011011,//FMAX.W
    32'b01111011111xxxxxxxxxxxxxxx011011,//FMAX_A.D
    32'b01111011110xxxxxxxxxxxxxxx011011,//FMAX_A.W
    32'b01111000001xxxxxxxxxxxxxxx011100,//FMIN.D
    32'b01111000000xxxxxxxxxxxxxxx011100,//FMIN.W
    32'b01111000011xxxxxxxxxxxxxxx011100,//FMIN_A.D
    32'b01111000010xxxxxxxxxxxxxxx011100,//FMIN_A.W
    32'b01111010001xxxxxxxxxxxxxxx011011,//FMUL.D
    32'b01111010000xxxxxxxxxxxxxxx011011,//FMUL.W
    32'b01111001111xxxxxxxxxxxxxxx011011,//FSUB.D
    32'b01111001110xxxxxxxxxxxxxxx011011,//FSUB.W
    32'b01111010010xxxxxxxxxxxxxxx011100,//FTQ.H
    32'b01111010011xxxxxxxxxxxxxxx011100,//FTQ.W
    32'b01111011000xxxxxxxxxxxxxxx010101,//ILVEV.B
    32'b01111011011xxxxxxxxxxxxxxx010101,//ILVEV.D
    32'b01111011001xxxxxxxxxxxxxxx010101,//ILVEV.H
    32'b01111011010xxxxxxxxxxxxxxx010101,//ILVEV.W
    32'b01111010000xxxxxxxxxxxxxxx010101,//ILVL.B
    32'b01111010011xxxxxxxxxxxxxxx010101,//ILVL.D
    32'b01111010001xxxxxxxxxxxxxxx010101,//ILVL.H
    32'b01111010010xxxxxxxxxxxxxxx010101,//ILVL.W
    32'b01111011100xxxxxxxxxxxxxxx010101,//ILVOD.B
    32'b01111011111xxxxxxxxxxxxxxx010101,//ILVOD.D
    32'b01111011101xxxxxxxxxxxxxxx010101,//ILVOD.H
    32'b01111011110xxxxxxxxxxxxxxx010101,//ILVOD.W
    32'b01111010100xxxxxxxxxxxxxxx010101,//ILVR.B
    32'b01111010111xxxxxxxxxxxxxxx010101,//ILVR.D
    32'b01111010101xxxxxxxxxxxxxxx010101,//ILVR.H
    32'b01111010110xxxxxxxxxxxxxxx010101,//ILVR.W
    32'b01111001100xxxxxxxxxxxxxxx010001,//MAX_A.B
    32'b01111001111xxxxxxxxxxxxxxx010001,//MAX_A.D
    32'b01111001101xxxxxxxxxxxxxxx010001,//MAX_A.H
    32'b01111001110xxxxxxxxxxxxxxx010001,//MAX_A.W
    32'b01111010000xxxxxxxxxxxxxxx010001,//MAX_S.B
    32'b01111010011xxxxxxxxxxxxxxx010001,//MAX_S.D
    32'b01111010001xxxxxxxxxxxxxxx010001,//MAX_S.H
    32'b01111010010xxxxxxxxxxxxxxx010001,//MAX_S.W
    32'b01111010100xxxxxxxxxxxxxxx010001,//MAX_U.B
    32'b01111010111xxxxxxxxxxxxxxx010001,//MAX_U.D
    32'b01111010101xxxxxxxxxxxxxxx010001,//MAX_U.H
    32'b01111010110xxxxxxxxxxxxxxx010001,//MAX_U.W
    32'b01111011000xxxxxxxxxxxxxxx010001,//MIN_A.B
    32'b01111011011xxxxxxxxxxxxxxx010001,//MIN_A.D
    32'b01111011001xxxxxxxxxxxxxxx010001,//MIN_A.H
    32'b01111011010xxxxxxxxxxxxxxx010001,//MIN_A.W
    32'b01111011100xxxxxxxxxxxxxxx010001,//MIN_S.B
    32'b01111011111xxxxxxxxxxxxxxx010001,//MIN_S.D
    32'b01111011101xxxxxxxxxxxxxxx010001,//MIN_S.H
    32'b01111011110xxxxxxxxxxxxxxx010001,//MIN_S.W
    32'b01111000000xxxxxxxxxxxxxxx010010,//MIN_U.B
    32'b01111000011xxxxxxxxxxxxxxx010010,//MIN_U.D
    32'b01111000001xxxxxxxxxxxxxxx010010,//MIN_U.H
    32'b01111000010xxxxxxxxxxxxxxx010010,//MIN_U.W
    32'b01111000010xxxxxxxxxxxxxxx011011,//MULR_Q.H
    32'b01111000011xxxxxxxxxxxxxxx011011,//MULR_Q.W
    32'b01111001100xxxxxxxxxxxxxxx010010,//MULV.B
    32'b01111001111xxxxxxxxxxxxxxx010010,//MULV.D
    32'b01111001101xxxxxxxxxxxxxxx010010,//MULV.H
    32'b01111001110xxxxxxxxxxxxxxx010010,//MULV.W
    32'b01111000000xxxxxxxxxxxxxxx011011,//MUL_Q.H
    32'b01111000001xxxxxxxxxxxxxxx011011,//MUL_Q.W
    32'b01111000010xxxxxxxxxxxxxxx001111,//NOR.V
    32'b01111000001xxxxxxxxxxxxxxx001111,//OR.V
    32'b01111001000xxxxxxxxxxxxxxx010101,//PCKEV.B
    32'b01111001011xxxxxxxxxxxxxxx010101,//PCKEV.D
    32'b01111001001xxxxxxxxxxxxxxx010101,//PCKEV.H
    32'b01111001010xxxxxxxxxxxxxxx010101,//PCKEV.W
    32'b01111001100xxxxxxxxxxxxxxx010101,//PCKOD.B
    32'b01111001111xxxxxxxxxxxxxxx010101,//PCKOD.D
    32'b01111001101xxxxxxxxxxxxxxx010101,//PCKOD.H
    32'b01111001110xxxxxxxxxxxxxxx010101,//PCKOD.W
    32'b01111010000xxxxxxxxxxxxxxx000111,//S3IL0.B
    32'b01111010001xxxxxxxxxxxxxxx000111,//S3IL0.H
    32'b01111010010xxxxxxxxxxxxxxx000111,//S3IL0.W
    32'b01111010100xxxxxxxxxxxxxxx000111,//S3IL1.B
    32'b01111010101xxxxxxxxxxxxxxx000111,//S3IL1.H
    32'b01111010110xxxxxxxxxxxxxxx000111,//S3IL1.W
    32'b01111011000xxxxxxxxxxxxxxx000111,//S3IL2.B
    32'b01111011001xxxxxxxxxxxxxxx000111,//S3IL2.H
    32'b01111011010xxxxxxxxxxxxxxx000111,//S3IL2.W
    32'b01111000000xxxxxxxxxxxxxxx000111,//S3IR0.B
    32'b01111000001xxxxxxxxxxxxxxx000111,//S3IR0.H
    32'b01111000010xxxxxxxxxxxxxxx000111,//S3IR0.W
    32'b01111000100xxxxxxxxxxxxxxx000111,//S3IR1.B
    32'b01111000101xxxxxxxxxxxxxxx000111,//S3IR1.H
    32'b01111000110xxxxxxxxxxxxxxx000111,//S3IR1.W
    32'b01111001000xxxxxxxxxxxxxxx000111,//S3IR2.B
    32'b01111001001xxxxxxxxxxxxxxx000111,//S3IR2.H
    32'b01111001010xxxxxxxxxxxxxxx000111,//S3IR2.W
    32'b01111010000xxxxxxxxxxxxxxx000101,//SE3L0.B
    32'b01111010001xxxxxxxxxxxxxxx000101,//SE3L0.H
    32'b01111010010xxxxxxxxxxxxxxx000101,//SE3L0.W
    32'b01111010100xxxxxxxxxxxxxxx000101,//SE3L1.B
    32'b01111010101xxxxxxxxxxxxxxx000101,//SE3L1.H
    32'b01111010110xxxxxxxxxxxxxxx000101,//SE3L1.W
    32'b01111011000xxxxxxxxxxxxxxx000101,//SE3L2.B
    32'b01111011001xxxxxxxxxxxxxxx000101,//SE3L2.H
    32'b01111011010xxxxxxxxxxxxxxx000101,//SE3L2.W
    32'b01111000000xxxxxxxxxxxxxxx000101,//SE3R0.B
    32'b01111000001xxxxxxxxxxxxxxx000101,//SE3R0.H
    32'b01111000010xxxxxxxxxxxxxxx000101,//SE3R0.W
    32'b01111000100xxxxxxxxxxxxxxx000101,//SE3R1.B
    32'b01111000101xxxxxxxxxxxxxxx000101,//SE3R1.H
    32'b01111000110xxxxxxxxxxxxxxx000101,//SE3R1.W
    32'b01111001000xxxxxxxxxxxxxxx000101,//SE3R2.B
    32'b01111001001xxxxxxxxxxxxxxx000101,//SE3R2.H
    32'b01111001010xxxxxxxxxxxxxxx000101,//SE3R2.W
    32'b01111010000xxxxxxxxxxxxxxx010011,//SHL.B
    32'b01111010011xxxxxxxxxxxxxxx010011,//SHL.D
    32'b01111010001xxxxxxxxxxxxxxx010011,//SHL.H
    32'b01111010010xxxxxxxxxxxxxxx010011,//SHL.W
    32'b01111000000xxxxxxxxxxxxxxx011010,//SLD.B
    32'b01111000001110xxxxxxxxxxxx011010,//SLD.D
    32'b011110000010xxxxxxxxxxxxxx011010,//SLD.H
    32'b0111100000110xxxxxxxxxxxxx011010,//SLD.W
    32'b01111001100xxxxxxxxxxxxxxx010110,//SLDR.B
    32'b01111001111xxxxxxxxxxxxxxx010110,//SLDR.D
    32'b01111001101xxxxxxxxxxxxxxx010110,//SLDR.H
    32'b01111001110xxxxxxxxxxxxxxx010110,//SLDR.W
    32'b01111010100xxxxxxxxxxxxxxx010011,//SRA.B
    32'b01111010111xxxxxxxxxxxxxxx010011,//SRA.D
    32'b01111010101xxxxxxxxxxxxxxx010011,//SRA.H
    32'b01111010110xxxxxxxxxxxxxxx010011,//SRA.W
    32'b01111011000xxxxxxxxxxxxxxx010011,//SRL.B
    32'b01111011011xxxxxxxxxxxxxxx010011,//SRL.D
    32'b01111011001xxxxxxxxxxxxxxx010011,//SRL.H
    32'b01111011010xxxxxxxxxxxxxxx010011,//SRL.W
    32'b01111001000xxxxxxxxxxxxxxx010001,//SUBSS_U.B
    32'b01111001011xxxxxxxxxxxxxxx010001,//SUBSS_U.D
    32'b01111001001xxxxxxxxxxxxxxx010001,//SUBSS_U.H
    32'b01111001010xxxxxxxxxxxxxxx010001,//SUBSS_U.W
    32'b01111000000xxxxxxxxxxxxxxx010001,//SUBS_S.B
    32'b01111000011xxxxxxxxxxxxxxx010001,//SUBS_S.D
    32'b01111000001xxxxxxxxxxxxxxx010001,//SUBS_S.H
    32'b01111000010xxxxxxxxxxxxxxx010001,//SUBS_S.W
    32'b01111000100xxxxxxxxxxxxxxx010001,//SUBS_U.B
    32'b01111000111xxxxxxxxxxxxxxx010001,//SUBS_U.D
    32'b01111000101xxxxxxxxxxxxxxx010001,//SUBS_U.H
    32'b01111000110xxxxxxxxxxxxxxx010001,//SUBS_U.W
    32'b01111010100xxxxxxxxxxxxxxx010000,//SUBV.B
    32'b01111010111xxxxxxxxxxxxxxx010000,//SUBV.D
    32'b01111010101xxxxxxxxxxxxxxx010000,//SUBV.H
    32'b01111010110xxxxxxxxxxxxxxx010000,//SUBV.W
    32'b01111000011xxxxxxxxxxxxxxx001111://XOR.V
        begin
        o_rq_ma=1;
        o_rq_mb=1;
        o_wq_mx=1;
        end
    32'b01111000000xxxxxxxxxxxxxxx001110,//BNZ.B
    32'b01111000011xxxxxxxxxxxxxxx001110,//BNZ.D
    32'b01111000001xxxxxxxxxxxxxxx001110,//BNZ.H
    32'b01111000111xxxxxxxxxxxxxxx001111,//BNZ.V
    32'b01111000010xxxxxxxxxxxxxxx001110,//BNZ.W
    32'b01111000100xxxxxxxxxxxxxxx001110,//BZ.B
    32'b01111000111xxxxxxxxxxxxxxx001110,//BZ.D
    32'b01111000101xxxxxxxxxxxxxxx001110,//BZ.H
    32'b01111001000xxxxxxxxxxxxxxx001111,//BZ.V
    32'b01111000110xxxxxxxxxxxxxxx001110,//BZ.W
    32'b01111000100xxxxxxxxxxxxxxx010110,//MVTGR_S.B
    32'b01111000101xxxxxxxxxxxxxxx010110,//MVTGR_S.H
    32'b01111000110xxxxxxxxxxxxxxx010110,//MVTGR_S.W
    32'b01111001000xxxxxxxxxxxxxxx010110,//MVTGR_U.B
    32'b01111001001xxxxxxxxxxxxxxx010110,//MVTGR_U.H
    32'b01111001010xxxxxxxxxxxxxxx010110,//MVTGR_U.W
    32'b01111000100xxxxxxxxxxxxxxx011010,//MVTG_S.B
    32'b011110001010xxxxxxxxxxxxxx011010,//MVTG_S.H
    32'b0111100010110xxxxxxxxxxxxx011010,//MVTG_S.W
    32'b01111000110xxxxxxxxxxxxxxx011010,//MVTG_U.B
    32'b011110001110xxxxxxxxxxxxxx011010,//MVTG_U.H
    32'b0111100011110xxxxxxxxxxxxx011010,//MVTG_U.W
    32'b01111001101xxxxxxxxxxxxxxx001111,//ST.V
    32'b01111001110xxxxxxxxxxxxxxx001111://STX.V
        begin
        o_rq_ma=1;
        end
    32'b110001xxxxxxxxxxxxxxxxxxxxxxxxxx,//LWC1
    32'b010011xxxxxxxxxx00000xxxxx000000,//LWXC1
    32'b01000100100xxxxxxxxxx00000000000://MTC1
        begin
        o_wl_fx=1;
        end
    32'b010011xxxxxxxxxxxxxxxxxxxx100000,//MADD.S
    32'b010011xxxxxxxxxxxxxxxxxxxx101000,//MSUB.S
    32'b010011xxxxxxxxxxxxxxxxxxxx110000,//NMADD.S
    32'b010011xxxxxxxxxxxxxxxxxxxx111000://NMSUB.S
        begin
        o_rl_fa=1;
        o_rl_fb=1;
        o_rl_fc=1;
        o_wl_fx=1;
        end
    32'b01111011100xxxxxxxxxxxxxxx010011,//BINSL.B
    32'b01111011111xxxxxxxxxxxxxxx010011,//BINSL.D
    32'b01111011101xxxxxxxxxxxxxxx010011,//BINSL.H
    32'b01111011110xxxxxxxxxxxxxxx010011,//BINSL.W
    32'b01111000000xxxxxxxxxxxxxxx010100,//BINSR.B
    32'b01111000011xxxxxxxxxxxxxxx010100,//BINSR.D
    32'b01111000001xxxxxxxxxxxxxxx010100,//BINSR.H
    32'b01111000010xxxxxxxxxxxxxxx010100,//BINSR.W
    32'b01111000100xxxxxxxxxxxxxxx001111,//BMNZ.V
    32'b01111000101xxxxxxxxxxxxxxx001111,//BMZ.V
    32'b01111000110xxxxxxxxxxxxxxx001111,//BSEL.V
    32'b01111000011xxxxxxxxxxxxxxx010011,//DPADD_S.D
    32'b01111000001xxxxxxxxxxxxxxx010011,//DPADD_S.H
    32'b01111000010xxxxxxxxxxxxxxx010011,//DPADD_S.W
    32'b01111000111xxxxxxxxxxxxxxx010011,//DPADD_U.D
    32'b01111000101xxxxxxxxxxxxxxx010011,//DPADD_U.H
    32'b01111000110xxxxxxxxxxxxxxx010011,//DPADD_U.W
    32'b01111001011xxxxxxxxxxxxxxx010011,//DPSUB_S.D
    32'b01111001001xxxxxxxxxxxxxxx010011,//DPSUB_S.H
    32'b01111001010xxxxxxxxxxxxxxx010011,//DPSUB_S.W
    32'b01111001111xxxxxxxxxxxxxxx010011,//DPSUB_U.D
    32'b01111001101xxxxxxxxxxxxxxx010011,//DPSUB_U.H
    32'b01111001110xxxxxxxxxxxxxxx010011,//DPSUB_U.W
    32'b01111010111xxxxxxxxxxxxxxx011011,//FMADD.D
    32'b01111010110xxxxxxxxxxxxxxx011011,//FMADD.W
    32'b01111011001xxxxxxxxxxxxxxx011011,//FMSUB.D
    32'b01111011000xxxxxxxxxxxxxxx011011,//FMSUB.W
    32'b01111000110xxxxxxxxxxxxxxx011011,//MADDR_Q.H
    32'b01111000111xxxxxxxxxxxxxxx011011,//MADDR_Q.W
    32'b01111010000xxxxxxxxxxxxxxx010010,//MADDV.B
    32'b01111010011xxxxxxxxxxxxxxx010010,//MADDV.D
    32'b01111010001xxxxxxxxxxxxxxx010010,//MADDV.H
    32'b01111010010xxxxxxxxxxxxxxx010010,//MADDV.W
    32'b01111000100xxxxxxxxxxxxxxx011011,//MADD_Q.H
    32'b01111000101xxxxxxxxxxxxxxx011011,//MADD_Q.W
    32'b01111001010xxxxxxxxxxxxxxx011011,//MSUBR_Q.H
    32'b01111001011xxxxxxxxxxxxxxx011011,//MSUBR_Q.W
    32'b01111010100xxxxxxxxxxxxxxx010010,//MSUBV.B
    32'b01111010111xxxxxxxxxxxxxxx010010,//MSUBV.D
    32'b01111010101xxxxxxxxxxxxxxx010010,//MSUBV.H
    32'b01111010110xxxxxxxxxxxxxxx010010,//MSUBV.W
    32'b01111001000xxxxxxxxxxxxxxx011011,//MSUB_Q.H
    32'b01111001001xxxxxxxxxxxxxxx011011,//MSUB_Q.W
    32'b01111000100xxxxxxxxxxxxxxx010101,//VSHF.B
    32'b01111000111xxxxxxxxxxxxxxx010101,//VSHF.D
    32'b01111000101xxxxxxxxxxxxxxx010101,//VSHF.H
    32'b01111000110xxxxxxxxxxxxxxx010101://VSHF.W
        begin
        o_rq_ma=1;
        o_rq_mb=1;
        o_rq_mc=1;
        o_wq_mx=1;
        end
    32'b010011xxxxxxxxxxxxxxxxxxxx100001,//MADD.D
    32'b010011xxxxxxxxxxxxxxxxxxxx100110,//MADD.PS
    32'b010011xxxxxxxxxxxxxxxxxxxx101001,//MSUB.D
    32'b010011xxxxxxxxxxxxxxxxxxxx101110,//MSUB.PS
    32'b010011xxxxxxxxxxxxxxxxxxxx110001,//NMADD.D
    32'b010011xxxxxxxxxxxxxxxxxxxx110110,//NMADD.PS
    32'b010011xxxxxxxxxxxxxxxxxxxx111001,//NMSUB.D
    32'b010011xxxxxxxxxxxxxxxxxxxx111110://NMSUB.PS
        begin
        o_rh_fa=1;
        o_rh_fb=1;
        o_rh_fc=1;
        o_rl_fa=1;
        o_rl_fb=1;
        o_rl_fc=1;
        o_wh_fx=1;
        o_wl_fx=1;
        end
    32'b0100011000100000xxxxxxxxxx001110,//CEIL.W.D
    32'b0100011000100000xxxxxxxxxx100000,//CVT.S.D
    32'b0100011010100000xxxxxxxxxx100000,//CVT.S.L
    32'b0100011000100000xxxxxxxxxx100100,//CVT.W.D
    32'b0100011000100000xxxxxxxxxx001111,//FLOOR.W.D
    32'b0100011000100000xxxxxxxxxx001100,//ROUND.W.D
    32'b0100011000100000xxxxxxxxxx001101://TRUNC.W.D
        begin
        o_rh_fa=1;
        o_rl_fa=1;
        o_wl_fx=1;
        end
    32'b01000100111xxxxxxxxxx00000000000://MTHC1
        begin
        o_wh_fx=1;
        end
    32'b110101xxxxxxxxxxxxxxxxxxxxxxxxxx,//LDC1
    32'b010011xxxxxxxxxx00000xxxxx000001,//LDXC1
    32'b010011xxxxxxxxxx00000xxxxx000101://LUXC1
        begin
        o_wh_fx=1;
        o_wl_fx=1;
        end
    32'b0100011011000000xxxxxxxxxx100000://CVT.S.PU
        begin
        o_rh_fa=1;
        o_wl_fx=1;
        end
    32'b0100011000000000xxxxxxxxxx000101,//ABS.S
    32'b0100011000000000xxxxxxxxxx001110,//CEIL.W.S
    32'b0100011011000000xxxxxxxxxx101000,//CVT.S.PL
    32'b0100011010000000xxxxxxxxxx100000,//CVT.S.W
    32'b0100011000000000xxxxxxxxxx100100,//CVT.W.S
    32'b0100011000000000xxxxxxxxxx001111,//FLOOR.W.S
    32'b0100011000000000xxxxxxxxxx000110,//MOV.S
    32'b0100011000000000xxxxxxxxxx000111,//NEG.S
    32'b0100011000000000xxxxxxxxxx010101,//RECIP.S
    32'b0100011000000000xxxxxxxxxx001100,//ROUND.W.S
    32'b0100011000000000xxxxxxxxxx010110,//RSQRT.S
    32'b0100011000000000xxxxxxxxxx000100,//SQRT.S
    32'b0100011000000000xxxxxxxxxx001101://TRUNC.W.S
        begin
        o_rl_fa=1;
        o_wl_fx=1;
        end
    32'b111101xxxxxxxxxxxxxxxxxxxxxxxxxx://SDC1
        begin
        o_rh_fb=1;
        o_rl_fb=1;
        end
    32'b01111000100xxxxxxxxxxxxxxx000000,//ADDI_A.B
    32'b01111000111xxxxxxxxxxxxxxx000000,//ADDI_A.D
    32'b01111000101xxxxxxxxxxxxxxx000000,//ADDI_A.H
    32'b01111000110xxxxxxxxxxxxxxx000000,//ADDI_A.W
    32'b01111001000xxxxxxxxxxxxxxx000000,//ADDSI_A.B
    32'b01111001011xxxxxxxxxxxxxxx000000,//ADDSI_A.D
    32'b01111001001xxxxxxxxxxxxxxx000000,//ADDSI_A.H
    32'b01111001010xxxxxxxxxxxxxxx000000,//ADDSI_A.W
    32'b01111001100xxxxxxxxxxxxxxx000000,//ADDSI_S.B
    32'b01111001111xxxxxxxxxxxxxxx000000,//ADDSI_S.D
    32'b01111001101xxxxxxxxxxxxxxx000000,//ADDSI_S.H
    32'b01111001110xxxxxxxxxxxxxxx000000,//ADDSI_S.W
    32'b01111010000xxxxxxxxxxxxxxx000000,//ADDSI_U.B
    32'b01111010011xxxxxxxxxxxxxxx000000,//ADDSI_U.D
    32'b01111010001xxxxxxxxxxxxxxx000000,//ADDSI_U.H
    32'b01111010010xxxxxxxxxxxxxxx000000,//ADDSI_U.W
    32'b01111000000xxxxxxxxxxxxxxx000000,//ADDVI.B
    32'b01111000011xxxxxxxxxxxxxxx000000,//ADDVI.D
    32'b01111000001xxxxxxxxxxxxxxx000000,//ADDVI.H
    32'b01111000010xxxxxxxxxxxxxxx000000,//ADDVI.W
    32'b01111000xxxxxxxxxxxxxxxxxx001010,//ANDI.B
    32'b01111011000xxxxxxxxxxxxxxx000000,//ASUBI_S.B
    32'b01111011011xxxxxxxxxxxxxxx000000,//ASUBI_S.D
    32'b01111011001xxxxxxxxxxxxxxx000000,//ASUBI_S.H
    32'b01111011010xxxxxxxxxxxxxxx000000,//ASUBI_S.W
    32'b01111011100xxxxxxxxxxxxxxx000000,//ASUBI_U.B
    32'b01111011111xxxxxxxxxxxxxxx000000,//ASUBI_U.D
    32'b01111011101xxxxxxxxxxxxxxx000000,//ASUBI_U.H
    32'b01111011110xxxxxxxxxxxxxxx000000,//ASUBI_U.W
    32'b01111000100xxxxxxxxxxxxxxx000010,//AVEI_S.B
    32'b01111000111xxxxxxxxxxxxxxx000010,//AVEI_S.D
    32'b01111000101xxxxxxxxxxxxxxx000010,//AVEI_S.H
    32'b01111000110xxxxxxxxxxxxxxx000010,//AVEI_S.W
    32'b01111001000xxxxxxxxxxxxxxx000010,//AVEI_U.B
    32'b01111001011xxxxxxxxxxxxxxx000010,//AVEI_U.D
    32'b01111001001xxxxxxxxxxxxxxx000010,//AVEI_U.H
    32'b01111001010xxxxxxxxxxxxxxx000010,//AVEI_U.W
    32'b0111101111110xxxxxxxxxxxxx011110,//BCLRI.B
    32'b0111101110xxxxxxxxxxxxxxxx011110,//BCLRI.D
    32'b011110111110xxxxxxxxxxxxxx011110,//BCLRI.H
    32'b01111011110xxxxxxxxxxxxxxx011110,//BCLRI.W
    32'b0111100011110xxxxxxxxxxxxx011111,//BNEGI.B
    32'b0111100010xxxxxxxxxxxxxxxx011111,//BNEGI.D
    32'b011110001110xxxxxxxxxxxxxx011111,//BNEGI.H
    32'b01111000110xxxxxxxxxxxxxxx011111,//BNEGI.W
    32'b0111100001110xxxxxxxxxxxxx011111,//BSETI.B
    32'b0111100000xxxxxxxxxxxxxxxx011111,//BSETI.D
    32'b011110000110xxxxxxxxxxxxxx011111,//BSETI.H
    32'b01111000010xxxxxxxxxxxxxxx011111,//BSETI.W
    32'b01111010000xxxxxxxxxxxxxxx000011,//CEQI.B
    32'b01111010011xxxxxxxxxxxxxxx000011,//CEQI.D
    32'b01111010001xxxxxxxxxxxxxxx000011,//CEQI.H
    32'b01111010010xxxxxxxxxxxxxxx000011,//CEQI.W
    32'b01111011000xxxxxxxxxxxxxxx000011,//CLEI_S.B
    32'b01111011011xxxxxxxxxxxxxxx000011,//CLEI_S.D
    32'b01111011001xxxxxxxxxxxxxxx000011,//CLEI_S.H
    32'b01111011010xxxxxxxxxxxxxxx000011,//CLEI_S.W
    32'b01111000000xxxxxxxxxxxxxxx000100,//CLEI_U.B
    32'b01111000011xxxxxxxxxxxxxxx000100,//CLEI_U.D
    32'b01111000001xxxxxxxxxxxxxxx000100,//CLEI_U.H
    32'b01111000010xxxxxxxxxxxxxxx000100,//CLEI_U.W
    32'b01111010100xxxxxxxxxxxxxxx000011,//CLTI_S.B
    32'b01111010111xxxxxxxxxxxxxxx000011,//CLTI_S.D
    32'b01111010101xxxxxxxxxxxxxxx000011,//CLTI_S.H
    32'b01111010110xxxxxxxxxxxxxxx000011,//CLTI_S.W
    32'b01111011100xxxxxxxxxxxxxxx000011,//CLTI_U.B
    32'b01111011111xxxxxxxxxxxxxxx000011,//CLTI_U.D
    32'b01111011101xxxxxxxxxxxxxxx000011,//CLTI_U.H
    32'b01111011110xxxxxxxxxxxxxxx000011,//CLTI_U.W
    32'b01111011011xxxxxxxxxxxxxxx000010,//DOTPI_S.D
    32'b01111011001xxxxxxxxxxxxxxx000010,//DOTPI_S.H
    32'b01111011010xxxxxxxxxxxxxxx000010,//DOTPI_S.W
    32'b01111011111xxxxxxxxxxxxxxx000010,//DOTPI_U.D
    32'b01111011101xxxxxxxxxxxxxxx000010,//DOTPI_U.H
    32'b01111011110xxxxxxxxxxxxxxx000010,//DOTPI_U.W
    32'b0111101111000111xxxxxxxxxx001111,//FCLASS.D
    32'b0111101111000110xxxxxxxxxx001111,//FCLASS.W
    32'b0111101111010101xxxxxxxxxx001111,//FEXUPL.D
    32'b0111101111010100xxxxxxxxxx001111,//FEXUPL.W
    32'b0111101111010111xxxxxxxxxx001111,//FEXUPR.D
    32'b0111101111010110xxxxxxxxxx001111,//FEXUPR.W
    32'b0111101111001011xxxxxxxxxx001111,//FFINT_S.D
    32'b0111101111001010xxxxxxxxxx001111,//FFINT_S.W
    32'b0111101111001111xxxxxxxxxx001111,//FFINT_U.D
    32'b0111101111001110xxxxxxxxxx001111,//FFINT_U.W
    32'b0111101111010001xxxxxxxxxx001111,//FFQL.D
    32'b0111101111010000xxxxxxxxxx001111,//FFQL.W
    32'b0111101111010011xxxxxxxxxx001111,//FFQR.D
    32'b0111101111010010xxxxxxxxxx001111,//FFQR.W
    32'b0111101111000101xxxxxxxxxx001111,//FLOG2.D
    32'b0111101111000100xxxxxxxxxx001111,//FLOG2.W
    32'b0111101111000011xxxxxxxxxx001111,//FRINT.D
    32'b0111101111000010xxxxxxxxxx001111,//FRINT.W
    32'b0111101111000001xxxxxxxxxx001111,//FSQRT.D
    32'b0111101111000000xxxxxxxxxx001111,//FSQRT.W
    32'b0111101111001001xxxxxxxxxx001111,//FTINT_S.D
    32'b0111101111001000xxxxxxxxxx001111,//FTINT_S.W
    32'b0111101111001101xxxxxxxxxx001111,//FTINT_U.D
    32'b0111101111001100xxxxxxxxxx001111,//FTINT_U.W
    32'b01111001100xxxxxxxxxxxxxxx000001,//MAXI_A.B
    32'b01111001111xxxxxxxxxxxxxxx000001,//MAXI_A.D
    32'b01111001101xxxxxxxxxxxxxxx000001,//MAXI_A.H
    32'b01111001110xxxxxxxxxxxxxxx000001,//MAXI_A.W
    32'b01111010000xxxxxxxxxxxxxxx000001,//MAXI_S.B
    32'b01111010011xxxxxxxxxxxxxxx000001,//MAXI_S.D
    32'b01111010001xxxxxxxxxxxxxxx000001,//MAXI_S.H
    32'b01111010010xxxxxxxxxxxxxxx000001,//MAXI_S.W
    32'b01111010100xxxxxxxxxxxxxxx000001,//MAXI_U.B
    32'b01111010111xxxxxxxxxxxxxxx000001,//MAXI_U.D
    32'b01111010101xxxxxxxxxxxxxxx000001,//MAXI_U.H
    32'b01111010110xxxxxxxxxxxxxxx000001,//MAXI_U.W
    32'b01111011000xxxxxxxxxxxxxxx000001,//MINI_A.B
    32'b01111011011xxxxxxxxxxxxxxx000001,//MINI_A.D
    32'b01111011001xxxxxxxxxxxxxxx000001,//MINI_A.H
    32'b01111011010xxxxxxxxxxxxxxx000001,//MINI_A.W
    32'b01111011100xxxxxxxxxxxxxxx000001,//MINI_S.B
    32'b01111011111xxxxxxxxxxxxxxx000001,//MINI_S.D
    32'b01111011101xxxxxxxxxxxxxxx000001,//MINI_S.H
    32'b01111011110xxxxxxxxxxxxxxx000001,//MINI_S.W
    32'b01111000000xxxxxxxxxxxxxxx000010,//MINI_U.B
    32'b01111000011xxxxxxxxxxxxxxx000010,//MINI_U.D
    32'b01111000001xxxxxxxxxxxxxxx000010,//MINI_U.H
    32'b01111000010xxxxxxxxxxxxxxx000010,//MINI_U.W
    32'b01111000010xxxxxxxxxxxxxxx011010,//MOVE.B
    32'b01111000011110xxxxxxxxxxxx011010,//MOVE.D
    32'b011110000110xxxxxxxxxxxxxx011010,//MOVE.H
    32'b0111100001111110xxxxxxxxxx011010,//MOVE.V
    32'b0111100001110xxxxxxxxxxxxx011010,//MOVE.W
    32'b01111000000xxxxxxxxxxxxxxx010110,//MOVER.B
    32'b01111000011xxxxxxxxxxxxxxx010110,//MOVER.D
    32'b01111000001xxxxxxxxxxxxxxx010110,//MOVER.H
    32'b01111000010xxxxxxxxxxxxxxx010110,//MOVER.W
    32'b01111001100xxxxxxxxxxxxxxx000010,//MULVI.B
    32'b01111001111xxxxxxxxxxxxxxx000010,//MULVI.D
    32'b01111001101xxxxxxxxxxxxxxx000010,//MULVI.H
    32'b01111001110xxxxxxxxxxxxxxx000010,//MULVI.W
    32'b01111001000xxxxxxxxxxxxxxx011010,//MVFGE.B
    32'b011110010010xxxxxxxxxxxxxx011010,//MVFGE.H
    32'b0111100100110xxxxxxxxxxxxx011010,//MVFGE.W
    32'b01111010000xxxxxxxxxxxxxxx010110,//MVFGER.B
    32'b01111010001xxxxxxxxxxxxxxx010110,//MVFGER.H
    32'b01111010010xxxxxxxxxxxxxxx010110,//MVFGER.W
    32'b0111101110001000xxxxxxxxxx001111,//NLOC.B
    32'b0111101110001011xxxxxxxxxx001111,//NLOC.D
    32'b0111101110001001xxxxxxxxxx001111,//NLOC.H
    32'b0111101110001010xxxxxxxxxx001111,//NLOC.W
    32'b0111101110001100xxxxxxxxxx001111,//NLZC.B
    32'b0111101110001111xxxxxxxxxx001111,//NLZC.D
    32'b0111101110001101xxxxxxxxxx001111,//NLZC.H
    32'b0111101110001110xxxxxxxxxx001111,//NLZC.W
    32'b01111010xxxxxxxxxxxxxxxxxx001010,//NORI.B
    32'b01111001xxxxxxxxxxxxxxxxxx001010,//ORI.B
    32'b0111101110000100xxxxxxxxxx001111,//PCNT.B
    32'b0111101110000111xxxxxxxxxx001111,//PCNT.D
    32'b0111101110000101xxxxxxxxxx001111,//PCNT.H
    32'b0111101110000110xxxxxxxxxx001111,//PCNT.W
    32'b0111100001110xxxxxxxxxxxxx011110,//SAT_S.B
    32'b0111100000xxxxxxxxxxxxxxxx011110,//SAT_S.D
    32'b011110000110xxxxxxxxxxxxxx011110,//SAT_S.H
    32'b01111000010xxxxxxxxxxxxxxx011110,//SAT_S.W
    32'b0111100011110xxxxxxxxxxxxx011110,//SAT_U.B
    32'b0111100010xxxxxxxxxxxxxxxx011110,//SAT_U.D
    32'b011110001110xxxxxxxxxxxxxx011110,//SAT_U.H
    32'b01111000110xxxxxxxxxxxxxxx011110,//SAT_U.W
    32'b01111011xxxxxxxxxxxxxxxxxx001011,//SHF.B
    32'b01111000xxxxxxxxxxxxxxxxxx001100,//SHF.H
    32'b01111001xxxxxxxxxxxxxxxxxx001100,//SHF.W
    32'b0111100101110xxxxxxxxxxxxx011110,//SHLI.B
    32'b0111100100xxxxxxxxxxxxxxxx011110,//SHLI.D
    32'b011110010110xxxxxxxxxxxxxx011110,//SHLI.H
    32'b01111001010xxxxxxxxxxxxxxx011110,//SHLI.W
    32'b0111100111110xxxxxxxxxxxxx011110,//SRAI.B
    32'b0111100110xxxxxxxxxxxxxxxx011110,//SRAI.D
    32'b011110011110xxxxxxxxxxxxxx011110,//SRAI.H
    32'b01111001110xxxxxxxxxxxxxxx011110,//SRAI.W
    32'b0111101001110xxxxxxxxxxxxx011110,//SRLI.B
    32'b0111101000xxxxxxxxxxxxxxxx011110,//SRLI.D
    32'b011110100110xxxxxxxxxxxxxx011110,//SRLI.H
    32'b01111010010xxxxxxxxxxxxxxx011110,//SRLI.W
    32'b01111000000xxxxxxxxxxxxxxx000001,//SUBSI_S.B
    32'b01111000011xxxxxxxxxxxxxxx000001,//SUBSI_S.D
    32'b01111000001xxxxxxxxxxxxxxx000001,//SUBSI_S.H
    32'b01111000010xxxxxxxxxxxxxxx000001,//SUBSI_S.W
    32'b01111000100xxxxxxxxxxxxxxx000001,//SUBSI_U.B
    32'b01111000111xxxxxxxxxxxxxxx000001,//SUBSI_U.D
    32'b01111000101xxxxxxxxxxxxxxx000001,//SUBSI_U.H
    32'b01111000110xxxxxxxxxxxxxxx000001,//SUBSI_U.W
    32'b01111001000xxxxxxxxxxxxxxx000001,//SUBSSI_U.B
    32'b01111001011xxxxxxxxxxxxxxx000001,//SUBSSI_U.D
    32'b01111001001xxxxxxxxxxxxxxx000001,//SUBSSI_U.H
    32'b01111001010xxxxxxxxxxxxxxx000001,//SUBSSI_U.W
    32'b01111010100xxxxxxxxxxxxxxx000000,//SUBVI.B
    32'b01111010111xxxxxxxxxxxxxxx000000,//SUBVI.D
    32'b01111010101xxxxxxxxxxxxxxx000000,//SUBVI.H
    32'b01111010110xxxxxxxxxxxxxxx000000,//SUBVI.W
    32'b01111011xxxxxxxxxxxxxxxxxx001010://XORI.B
        begin
        o_rq_ma=1;
        o_wq_mx=1;
        end
    32'b010011xxxxxxxxxxxxxxx00000001001,//SDXC1
    32'b010011xxxxxxxxxxxxxxx00000001101://SUXC1
        begin
        o_rh_fa=1;
        o_rl_fa=1;
        end
    32'b0100011000100000xxxxxxxxxx000101,//ABS.D
    32'b0100011011000000xxxxxxxxxx000101,//ABS.PS
    32'b0100011000100000xxxxxxxxxx001010,//CEIL.L.D
    32'b0100011010100000xxxxxxxxxx100001,//CVT.D.L
    32'b0100011000100000xxxxxxxxxx100101,//CVT.L.D
    32'b0100011000100000xxxxxxxxxx001011,//FLOOR.L.D
    32'b0100011000100000xxxxxxxxxx000110,//MOV.D
    32'b0100011011000000xxxxxxxxxx000110,//MOV.PS
    32'b0100011000100000xxxxxxxxxx000111,//NEG.D
    32'b0100011011000000xxxxxxxxxx000111,//NEG.PS
    32'b0100011000100000xxxxxxxxxx010101,//RECIP.D
    32'b0100011000100000xxxxxxxxxx001000,//ROUND.L.D
    32'b0100011000100000xxxxxxxxxx010110,//RSQRT.D
    32'b0100011000100000xxxxxxxxxx000100,//SQRT.D
    32'b0100011000100000xxxxxxxxxx001001://TRUNC.L.D
        begin
        o_rh_fa=1;
        o_rl_fa=1;
        o_wh_fx=1;
        o_wl_fx=1;
        end
    32'b0111101011110xxxxxxxxxxxxx011110,//BINSLI.B
    32'b0111101010xxxxxxxxxxxxxxxx011110,//BINSLI.D
    32'b011110101110xxxxxxxxxxxxxx011110,//BINSLI.H
    32'b01111010110xxxxxxxxxxxxxxx011110,//BINSLI.W
    32'b0111101101110xxxxxxxxxxxxx011110,//BINSRI.B
    32'b0111101100xxxxxxxxxxxxxxxx011110,//BINSRI.D
    32'b011110110110xxxxxxxxxxxxxx011110,//BINSRI.H
    32'b01111011010xxxxxxxxxxxxxxx011110,//BINSRI.W
    32'b01111000xxxxxxxxxxxxxxxxxx001011,//BMNZI.B
    32'b01111001xxxxxxxxxxxxxxxxxx001011,//BMZI.B
    32'b01111010xxxxxxxxxxxxxxxxxx001011,//BSELI.B
    32'b01111000011xxxxxxxxxxxxxxx000011,//DPADDI_S.D
    32'b01111000001xxxxxxxxxxxxxxx000011,//DPADDI_S.H
    32'b01111000010xxxxxxxxxxxxxxx000011,//DPADDI_S.W
    32'b01111000111xxxxxxxxxxxxxxx000011,//DPADDI_U.D
    32'b01111000101xxxxxxxxxxxxxxx000011,//DPADDI_U.H
    32'b01111000110xxxxxxxxxxxxxxx000011,//DPADDI_U.W
    32'b01111001011xxxxxxxxxxxxxxx000011,//DPSUBI_S.D
    32'b01111001001xxxxxxxxxxxxxxx000011,//DPSUBI_S.H
    32'b01111001010xxxxxxxxxxxxxxx000011,//DPSUBI_S.W
    32'b01111001111xxxxxxxxxxxxxxx000011,//DPSUBI_U.D
    32'b01111001101xxxxxxxxxxxxxxx000011,//DPSUBI_U.H
    32'b01111001110xxxxxxxxxxxxxxx000011,//DPSUBI_U.W
    32'b01111010000xxxxxxxxxxxxxxx000010,//MADDVI.B
    32'b01111010011xxxxxxxxxxxxxxx000010,//MADDVI.D
    32'b01111010001xxxxxxxxxxxxxxx000010,//MADDVI.H
    32'b01111010010xxxxxxxxxxxxxxx000010,//MADDVI.W
    32'b01111010100xxxxxxxxxxxxxxx000010,//MSUBVI.B
    32'b01111010111xxxxxxxxxxxxxxx000010,//MSUBVI.D
    32'b01111010101xxxxxxxxxxxxxxx000010,//MSUBVI.H
    32'b01111010110xxxxxxxxxxxxxxx000010://MSUBVI.W
        begin
        o_rq_ma=1;
        o_rq_mc=1;
        o_wq_mx=1;
        end
    32'b111001xxxxxxxxxxxxxxxxxxxxxxxxxx://SWC1
        begin
        o_rl_fb=1;
        end
        endcase

    end
endtask

//============================================================
// build by build_insn_access
//generate access op
//============================================================
function automatic fxu_acc_op_gen;
    input [31:0] i_insn;
    reg       op  ;
    begin

    op=0;
    casex(i_insn)
    32'b01000110000xxxxxxxxxxxxxxx100110,//CVT.PS.S
    32'b01000110000xxxxxxxxxxxxxxx000000,//ADD.S
    32'b01000110000xxxxxxxxxxxxxxx000011,//DIV.S
    32'b01000110000xxx00xxxxxxxxxx010001,//MOVF.S
    32'b01000110000xxxxxxxxxxxxxxx010011,//MOVN.S
    32'b01000110000xxx01xxxxxxxxxx010001,//MOVT.S
    32'b01000110000xxxxxxxxxxxxxxx010010,//MOVZ.S
    32'b01000110000xxxxxxxxxxxxxxx000010,//MUL.S
    32'b01000110000xxxxxxxxxxxxxxx000001,//SUB.S
    32'b0100011000000000xxxxxxxxxx001010,//CEIL.L.S
    32'b0100011000000000xxxxxxxxxx100001,//CVT.D.S
    32'b0100011010000000xxxxxxxxxx100001,//CVT.D.W
    32'b0100011000000000xxxxxxxxxx100101,//CVT.L.S
    32'b0100011000000000xxxxxxxxxx001011,//FLOOR.L.S
    32'b0100011000000000xxxxxxxxxx001000,//ROUND.L.S
    32'b0100011000000000xxxxxxxxxx001001,//TRUNC.L.S
    32'b01111001011xxxxxxxxxxxxxxx001111,//LD.V
    32'b01111001000xxxxxxxxxxxxxxx001110,//LDI.B
    32'b01111001011xxxxxxxxxxxxxxx001110,//LDI.D
    32'b01111001001xxxxxxxxxxxxxxx001110,//LDI.H
    32'b01111001010xxxxxxxxxxxxxxx001110,//LDI.W
    32'b01111001100xxxxxxxxxxxxxxx001111,//LDX.V
    32'b0111101110000000xxxxxxxxxx001111,//MVFG.B
    32'b0111101110000001xxxxxxxxxx001111,//MVFG.H
    32'b0111101110000010xxxxxxxxxx001111,//MVFG.W
    32'b01000110001xxxxxxxxxxxxxxx000000,//ADD.D
    32'b01000110110xxxxxxxxxxxxxxx000000,//ADD.PS
    32'b010011xxxxxxxxxxxxxxxxxxxx011110,//ALNV.PS
    32'b01000110001xxxxxxxxxxxxxxx000011,//DIV.D
    32'b01000110001xxx00xxxxxxxxxx010001,//MOVF.D
    32'b01000110110xxx00xxxxxxxxxx010001,//MOVF.PS
    32'b01000110001xxxxxxxxxxxxxxx010011,//MOVN.D
    32'b01000110110xxxxxxxxxxxxxxx010011,//MOVN.PS
    32'b01000110001xxx01xxxxxxxxxx010001,//MOVT.D
    32'b01000110110xxx01xxxxxxxxxx010001,//MOVT.PS
    32'b01000110001xxxxxxxxxxxxxxx010010,//MOVZ.D
    32'b01000110110xxxxxxxxxxxxxxx010010,//MOVZ.PS
    32'b01000110001xxxxxxxxxxxxxxx000010,//MUL.D
    32'b01000110110xxxxxxxxxxxxxxx000010,//MUL.PS
    32'b01000110110xxxxxxxxxxxxxxx101100,//PLL.PS
    32'b01000110110xxxxxxxxxxxxxxx101101,//PLU.PS
    32'b01000110110xxxxxxxxxxxxxxx101110,//PUL.PS
    32'b01000110110xxxxxxxxxxxxxxx101111,//PUU.PS
    32'b01000110001xxxxxxxxxxxxxxx000001,//SUB.D
    32'b01000110110xxxxxxxxxxxxxxx000001,//SUB.PS
    32'b01111001000xxxxxxxxxxxxxxx010000,//ADDS_A.B
    32'b01111001011xxxxxxxxxxxxxxx010000,//ADDS_A.D
    32'b01111001001xxxxxxxxxxxxxxx010000,//ADDS_A.H
    32'b01111001010xxxxxxxxxxxxxxx010000,//ADDS_A.W
    32'b01111001100xxxxxxxxxxxxxxx010000,//ADDS_S.B
    32'b01111001111xxxxxxxxxxxxxxx010000,//ADDS_S.D
    32'b01111001101xxxxxxxxxxxxxxx010000,//ADDS_S.H
    32'b01111001110xxxxxxxxxxxxxxx010000,//ADDS_S.W
    32'b01111010000xxxxxxxxxxxxxxx010000,//ADDS_U.B
    32'b01111010011xxxxxxxxxxxxxxx010000,//ADDS_U.D
    32'b01111010001xxxxxxxxxxxxxxx010000,//ADDS_U.H
    32'b01111010010xxxxxxxxxxxxxxx010000,//ADDS_U.W
    32'b01111000000xxxxxxxxxxxxxxx010000,//ADDV.B
    32'b01111000011xxxxxxxxxxxxxxx010000,//ADDV.D
    32'b01111000001xxxxxxxxxxxxxxx010000,//ADDV.H
    32'b01111000010xxxxxxxxxxxxxxx010000,//ADDV.W
    32'b01111000100xxxxxxxxxxxxxxx010000,//ADD_A.B
    32'b01111000111xxxxxxxxxxxxxxx010000,//ADD_A.D
    32'b01111000101xxxxxxxxxxxxxxx010000,//ADD_A.H
    32'b01111000110xxxxxxxxxxxxxxx010000,//ADD_A.W
    32'b01111000000xxxxxxxxxxxxxxx001111,//AND.V
    32'b01111011000xxxxxxxxxxxxxxx010000,//ASUB_S.B
    32'b01111011011xxxxxxxxxxxxxxx010000,//ASUB_S.D
    32'b01111011001xxxxxxxxxxxxxxx010000,//ASUB_S.H
    32'b01111011010xxxxxxxxxxxxxxx010000,//ASUB_S.W
    32'b01111011100xxxxxxxxxxxxxxx010000,//ASUB_U.B
    32'b01111011111xxxxxxxxxxxxxxx010000,//ASUB_U.D
    32'b01111011101xxxxxxxxxxxxxxx010000,//ASUB_U.H
    32'b01111011110xxxxxxxxxxxxxxx010000,//ASUB_U.W
    32'b01111000100xxxxxxxxxxxxxxx010010,//AVE_S.B
    32'b01111000111xxxxxxxxxxxxxxx010010,//AVE_S.D
    32'b01111000101xxxxxxxxxxxxxxx010010,//AVE_S.H
    32'b01111000110xxxxxxxxxxxxxxx010010,//AVE_S.W
    32'b01111001000xxxxxxxxxxxxxxx010010,//AVE_U.B
    32'b01111001011xxxxxxxxxxxxxxx010010,//AVE_U.D
    32'b01111001001xxxxxxxxxxxxxxx010010,//AVE_U.H
    32'b01111001010xxxxxxxxxxxxxxx010010,//AVE_U.W
    32'b01111000100xxxxxxxxxxxxxxx010100,//BCLR.B
    32'b01111000111xxxxxxxxxxxxxxx010100,//BCLR.D
    32'b01111000101xxxxxxxxxxxxxxx010100,//BCLR.H
    32'b01111000110xxxxxxxxxxxxxxx010100,//BCLR.W
    32'b01111001100xxxxxxxxxxxxxxx010100,//BNEG.B
    32'b01111001111xxxxxxxxxxxxxxx010100,//BNEG.D
    32'b01111001101xxxxxxxxxxxxxxx010100,//BNEG.H
    32'b01111001110xxxxxxxxxxxxxxx010100,//BNEG.W
    32'b01111001000xxxxxxxxxxxxxxx010100,//BSET.B
    32'b01111001011xxxxxxxxxxxxxxx010100,//BSET.D
    32'b01111001001xxxxxxxxxxxxxxx010100,//BSET.H
    32'b01111001010xxxxxxxxxxxxxxx010100,//BSET.W
    32'b01111010000xxxxxxxxxxxxxxx010100,//CEQ.B
    32'b01111010011xxxxxxxxxxxxxxx010100,//CEQ.D
    32'b01111010001xxxxxxxxxxxxxxx010100,//CEQ.H
    32'b01111010010xxxxxxxxxxxxxxx010100,//CEQ.W
    32'b01111011000xxxxxxxxxxxxxxx010100,//CLE_S.B
    32'b01111011011xxxxxxxxxxxxxxx010100,//CLE_S.D
    32'b01111011001xxxxxxxxxxxxxxx010100,//CLE_S.H
    32'b01111011010xxxxxxxxxxxxxxx010100,//CLE_S.W
    32'b01111000000xxxxxxxxxxxxxxx010101,//CLE_U.B
    32'b01111000011xxxxxxxxxxxxxxx010101,//CLE_U.D
    32'b01111000001xxxxxxxxxxxxxxx010101,//CLE_U.H
    32'b01111000010xxxxxxxxxxxxxxx010101,//CLE_U.W
    32'b01111010100xxxxxxxxxxxxxxx010100,//CLT_S.B
    32'b01111010111xxxxxxxxxxxxxxx010100,//CLT_S.D
    32'b01111010101xxxxxxxxxxxxxxx010100,//CLT_S.H
    32'b01111010110xxxxxxxxxxxxxxx010100,//CLT_S.W
    32'b01111011100xxxxxxxxxxxxxxx010100,//CLT_U.B
    32'b01111011111xxxxxxxxxxxxxxx010100,//CLT_U.D
    32'b01111011101xxxxxxxxxxxxxxx010100,//CLT_U.H
    32'b01111011110xxxxxxxxxxxxxxx010100,//CLT_U.W
    32'b01111011011xxxxxxxxxxxxxxx010010,//DOTP_S.D
    32'b01111011001xxxxxxxxxxxxxxx010010,//DOTP_S.H
    32'b01111011010xxxxxxxxxxxxxxx010010,//DOTP_S.W
    32'b01111011111xxxxxxxxxxxxxxx010010,//DOTP_U.D
    32'b01111011101xxxxxxxxxxxxxxx010010,//DOTP_U.H
    32'b01111011110xxxxxxxxxxxxxxx010010,//DOTP_U.W
    32'b01111001101xxxxxxxxxxxxxxx011011,//FADD.D
    32'b01111001100xxxxxxxxxxxxxxx011011,//FADD.W
    32'b01111000101xxxxxxxxxxxxxxx011100,//FCEQ.D
    32'b01111000100xxxxxxxxxxxxxxx011100,//FCEQ.W
    32'b01111001101xxxxxxxxxxxxxxx011100,//FCEQU.D
    32'b01111001100xxxxxxxxxxxxxxx011100,//FCEQU.W
    32'b01111001001xxxxxxxxxxxxxxx011100,//FCLE.D
    32'b01111001000xxxxxxxxxxxxxxx011100,//FCLE.W
    32'b01111010001xxxxxxxxxxxxxxx011100,//FCLEU.D
    32'b01111010000xxxxxxxxxxxxxxx011100,//FCLEU.W
    32'b01111000111xxxxxxxxxxxxxxx011100,//FCLT.D
    32'b01111000110xxxxxxxxxxxxxxx011100,//FCLT.W
    32'b01111001111xxxxxxxxxxxxxxx011100,//FCLTU.D
    32'b01111001110xxxxxxxxxxxxxxx011100,//FCLTU.W
    32'b01111001011xxxxxxxxxxxxxxx011100,//FCUN.D
    32'b01111001010xxxxxxxxxxxxxxx011100,//FCUN.W
    32'b01111010011xxxxxxxxxxxxxxx011011,//FDIV.D
    32'b01111010010xxxxxxxxxxxxxxx011011,//FDIV.W
    32'b01111010100xxxxxxxxxxxxxxx011100,//FEXDO.H
    32'b01111010101xxxxxxxxxxxxxxx011100,//FEXDO.W
    32'b01111011011xxxxxxxxxxxxxxx011011,//FEXP2.D
    32'b01111011010xxxxxxxxxxxxxxx011011,//FEXP2.W
    32'b01111011101xxxxxxxxxxxxxxx011011,//FMAX.D
    32'b01111011100xxxxxxxxxxxxxxx011011,//FMAX.W
    32'b01111011111xxxxxxxxxxxxxxx011011,//FMAX_A.D
    32'b01111011110xxxxxxxxxxxxxxx011011,//FMAX_A.W
    32'b01111000001xxxxxxxxxxxxxxx011100,//FMIN.D
    32'b01111000000xxxxxxxxxxxxxxx011100,//FMIN.W
    32'b01111000011xxxxxxxxxxxxxxx011100,//FMIN_A.D
    32'b01111000010xxxxxxxxxxxxxxx011100,//FMIN_A.W
    32'b01111010001xxxxxxxxxxxxxxx011011,//FMUL.D
    32'b01111010000xxxxxxxxxxxxxxx011011,//FMUL.W
    32'b01111001111xxxxxxxxxxxxxxx011011,//FSUB.D
    32'b01111001110xxxxxxxxxxxxxxx011011,//FSUB.W
    32'b01111010010xxxxxxxxxxxxxxx011100,//FTQ.H
    32'b01111010011xxxxxxxxxxxxxxx011100,//FTQ.W
    32'b01111011000xxxxxxxxxxxxxxx010101,//ILVEV.B
    32'b01111011011xxxxxxxxxxxxxxx010101,//ILVEV.D
    32'b01111011001xxxxxxxxxxxxxxx010101,//ILVEV.H
    32'b01111011010xxxxxxxxxxxxxxx010101,//ILVEV.W
    32'b01111010000xxxxxxxxxxxxxxx010101,//ILVL.B
    32'b01111010011xxxxxxxxxxxxxxx010101,//ILVL.D
    32'b01111010001xxxxxxxxxxxxxxx010101,//ILVL.H
    32'b01111010010xxxxxxxxxxxxxxx010101,//ILVL.W
    32'b01111011100xxxxxxxxxxxxxxx010101,//ILVOD.B
    32'b01111011111xxxxxxxxxxxxxxx010101,//ILVOD.D
    32'b01111011101xxxxxxxxxxxxxxx010101,//ILVOD.H
    32'b01111011110xxxxxxxxxxxxxxx010101,//ILVOD.W
    32'b01111010100xxxxxxxxxxxxxxx010101,//ILVR.B
    32'b01111010111xxxxxxxxxxxxxxx010101,//ILVR.D
    32'b01111010101xxxxxxxxxxxxxxx010101,//ILVR.H
    32'b01111010110xxxxxxxxxxxxxxx010101,//ILVR.W
    32'b01111001100xxxxxxxxxxxxxxx010001,//MAX_A.B
    32'b01111001111xxxxxxxxxxxxxxx010001,//MAX_A.D
    32'b01111001101xxxxxxxxxxxxxxx010001,//MAX_A.H
    32'b01111001110xxxxxxxxxxxxxxx010001,//MAX_A.W
    32'b01111010000xxxxxxxxxxxxxxx010001,//MAX_S.B
    32'b01111010011xxxxxxxxxxxxxxx010001,//MAX_S.D
    32'b01111010001xxxxxxxxxxxxxxx010001,//MAX_S.H
    32'b01111010010xxxxxxxxxxxxxxx010001,//MAX_S.W
    32'b01111010100xxxxxxxxxxxxxxx010001,//MAX_U.B
    32'b01111010111xxxxxxxxxxxxxxx010001,//MAX_U.D
    32'b01111010101xxxxxxxxxxxxxxx010001,//MAX_U.H
    32'b01111010110xxxxxxxxxxxxxxx010001,//MAX_U.W
    32'b01111011000xxxxxxxxxxxxxxx010001,//MIN_A.B
    32'b01111011011xxxxxxxxxxxxxxx010001,//MIN_A.D
    32'b01111011001xxxxxxxxxxxxxxx010001,//MIN_A.H
    32'b01111011010xxxxxxxxxxxxxxx010001,//MIN_A.W
    32'b01111011100xxxxxxxxxxxxxxx010001,//MIN_S.B
    32'b01111011111xxxxxxxxxxxxxxx010001,//MIN_S.D
    32'b01111011101xxxxxxxxxxxxxxx010001,//MIN_S.H
    32'b01111011110xxxxxxxxxxxxxxx010001,//MIN_S.W
    32'b01111000000xxxxxxxxxxxxxxx010010,//MIN_U.B
    32'b01111000011xxxxxxxxxxxxxxx010010,//MIN_U.D
    32'b01111000001xxxxxxxxxxxxxxx010010,//MIN_U.H
    32'b01111000010xxxxxxxxxxxxxxx010010,//MIN_U.W
    32'b01111000010xxxxxxxxxxxxxxx011011,//MULR_Q.H
    32'b01111000011xxxxxxxxxxxxxxx011011,//MULR_Q.W
    32'b01111001100xxxxxxxxxxxxxxx010010,//MULV.B
    32'b01111001111xxxxxxxxxxxxxxx010010,//MULV.D
    32'b01111001101xxxxxxxxxxxxxxx010010,//MULV.H
    32'b01111001110xxxxxxxxxxxxxxx010010,//MULV.W
    32'b01111000000xxxxxxxxxxxxxxx011011,//MUL_Q.H
    32'b01111000001xxxxxxxxxxxxxxx011011,//MUL_Q.W
    32'b01111000010xxxxxxxxxxxxxxx001111,//NOR.V
    32'b01111000001xxxxxxxxxxxxxxx001111,//OR.V
    32'b01111001000xxxxxxxxxxxxxxx010101,//PCKEV.B
    32'b01111001011xxxxxxxxxxxxxxx010101,//PCKEV.D
    32'b01111001001xxxxxxxxxxxxxxx010101,//PCKEV.H
    32'b01111001010xxxxxxxxxxxxxxx010101,//PCKEV.W
    32'b01111001100xxxxxxxxxxxxxxx010101,//PCKOD.B
    32'b01111001111xxxxxxxxxxxxxxx010101,//PCKOD.D
    32'b01111001101xxxxxxxxxxxxxxx010101,//PCKOD.H
    32'b01111001110xxxxxxxxxxxxxxx010101,//PCKOD.W
    32'b01111010000xxxxxxxxxxxxxxx000111,//S3IL0.B
    32'b01111010001xxxxxxxxxxxxxxx000111,//S3IL0.H
    32'b01111010010xxxxxxxxxxxxxxx000111,//S3IL0.W
    32'b01111010100xxxxxxxxxxxxxxx000111,//S3IL1.B
    32'b01111010101xxxxxxxxxxxxxxx000111,//S3IL1.H
    32'b01111010110xxxxxxxxxxxxxxx000111,//S3IL1.W
    32'b01111011000xxxxxxxxxxxxxxx000111,//S3IL2.B
    32'b01111011001xxxxxxxxxxxxxxx000111,//S3IL2.H
    32'b01111011010xxxxxxxxxxxxxxx000111,//S3IL2.W
    32'b01111000000xxxxxxxxxxxxxxx000111,//S3IR0.B
    32'b01111000001xxxxxxxxxxxxxxx000111,//S3IR0.H
    32'b01111000010xxxxxxxxxxxxxxx000111,//S3IR0.W
    32'b01111000100xxxxxxxxxxxxxxx000111,//S3IR1.B
    32'b01111000101xxxxxxxxxxxxxxx000111,//S3IR1.H
    32'b01111000110xxxxxxxxxxxxxxx000111,//S3IR1.W
    32'b01111001000xxxxxxxxxxxxxxx000111,//S3IR2.B
    32'b01111001001xxxxxxxxxxxxxxx000111,//S3IR2.H
    32'b01111001010xxxxxxxxxxxxxxx000111,//S3IR2.W
    32'b01111010000xxxxxxxxxxxxxxx000101,//SE3L0.B
    32'b01111010001xxxxxxxxxxxxxxx000101,//SE3L0.H
    32'b01111010010xxxxxxxxxxxxxxx000101,//SE3L0.W
    32'b01111010100xxxxxxxxxxxxxxx000101,//SE3L1.B
    32'b01111010101xxxxxxxxxxxxxxx000101,//SE3L1.H
    32'b01111010110xxxxxxxxxxxxxxx000101,//SE3L1.W
    32'b01111011000xxxxxxxxxxxxxxx000101,//SE3L2.B
    32'b01111011001xxxxxxxxxxxxxxx000101,//SE3L2.H
    32'b01111011010xxxxxxxxxxxxxxx000101,//SE3L2.W
    32'b01111000000xxxxxxxxxxxxxxx000101,//SE3R0.B
    32'b01111000001xxxxxxxxxxxxxxx000101,//SE3R0.H
    32'b01111000010xxxxxxxxxxxxxxx000101,//SE3R0.W
    32'b01111000100xxxxxxxxxxxxxxx000101,//SE3R1.B
    32'b01111000101xxxxxxxxxxxxxxx000101,//SE3R1.H
    32'b01111000110xxxxxxxxxxxxxxx000101,//SE3R1.W
    32'b01111001000xxxxxxxxxxxxxxx000101,//SE3R2.B
    32'b01111001001xxxxxxxxxxxxxxx000101,//SE3R2.H
    32'b01111001010xxxxxxxxxxxxxxx000101,//SE3R2.W
    32'b01111010000xxxxxxxxxxxxxxx010011,//SHL.B
    32'b01111010011xxxxxxxxxxxxxxx010011,//SHL.D
    32'b01111010001xxxxxxxxxxxxxxx010011,//SHL.H
    32'b01111010010xxxxxxxxxxxxxxx010011,//SHL.W
    32'b01111000000xxxxxxxxxxxxxxx011010,//SLD.B
    32'b01111000001110xxxxxxxxxxxx011010,//SLD.D
    32'b011110000010xxxxxxxxxxxxxx011010,//SLD.H
    32'b0111100000110xxxxxxxxxxxxx011010,//SLD.W
    32'b01111001100xxxxxxxxxxxxxxx010110,//SLDR.B
    32'b01111001111xxxxxxxxxxxxxxx010110,//SLDR.D
    32'b01111001101xxxxxxxxxxxxxxx010110,//SLDR.H
    32'b01111001110xxxxxxxxxxxxxxx010110,//SLDR.W
    32'b01111010100xxxxxxxxxxxxxxx010011,//SRA.B
    32'b01111010111xxxxxxxxxxxxxxx010011,//SRA.D
    32'b01111010101xxxxxxxxxxxxxxx010011,//SRA.H
    32'b01111010110xxxxxxxxxxxxxxx010011,//SRA.W
    32'b01111011000xxxxxxxxxxxxxxx010011,//SRL.B
    32'b01111011011xxxxxxxxxxxxxxx010011,//SRL.D
    32'b01111011001xxxxxxxxxxxxxxx010011,//SRL.H
    32'b01111011010xxxxxxxxxxxxxxx010011,//SRL.W
    32'b01111001000xxxxxxxxxxxxxxx010001,//SUBSS_U.B
    32'b01111001011xxxxxxxxxxxxxxx010001,//SUBSS_U.D
    32'b01111001001xxxxxxxxxxxxxxx010001,//SUBSS_U.H
    32'b01111001010xxxxxxxxxxxxxxx010001,//SUBSS_U.W
    32'b01111000000xxxxxxxxxxxxxxx010001,//SUBS_S.B
    32'b01111000011xxxxxxxxxxxxxxx010001,//SUBS_S.D
    32'b01111000001xxxxxxxxxxxxxxx010001,//SUBS_S.H
    32'b01111000010xxxxxxxxxxxxxxx010001,//SUBS_S.W
    32'b01111000100xxxxxxxxxxxxxxx010001,//SUBS_U.B
    32'b01111000111xxxxxxxxxxxxxxx010001,//SUBS_U.D
    32'b01111000101xxxxxxxxxxxxxxx010001,//SUBS_U.H
    32'b01111000110xxxxxxxxxxxxxxx010001,//SUBS_U.W
    32'b01111010100xxxxxxxxxxxxxxx010000,//SUBV.B
    32'b01111010111xxxxxxxxxxxxxxx010000,//SUBV.D
    32'b01111010101xxxxxxxxxxxxxxx010000,//SUBV.H
    32'b01111010110xxxxxxxxxxxxxxx010000,//SUBV.W
    32'b01111000011xxxxxxxxxxxxxxx001111,//XOR.V
    32'b110001xxxxxxxxxxxxxxxxxxxxxxxxxx,//LWC1
    32'b010011xxxxxxxxxx00000xxxxx000000,//LWXC1
    32'b01000100100xxxxxxxxxx00000000000,//MTC1
    32'b010011xxxxxxxxxxxxxxxxxxxx100000,//MADD.S
    32'b010011xxxxxxxxxxxxxxxxxxxx101000,//MSUB.S
    32'b010011xxxxxxxxxxxxxxxxxxxx110000,//NMADD.S
    32'b010011xxxxxxxxxxxxxxxxxxxx111000,//NMSUB.S
    32'b01111011100xxxxxxxxxxxxxxx010011,//BINSL.B
    32'b01111011111xxxxxxxxxxxxxxx010011,//BINSL.D
    32'b01111011101xxxxxxxxxxxxxxx010011,//BINSL.H
    32'b01111011110xxxxxxxxxxxxxxx010011,//BINSL.W
    32'b01111000000xxxxxxxxxxxxxxx010100,//BINSR.B
    32'b01111000011xxxxxxxxxxxxxxx010100,//BINSR.D
    32'b01111000001xxxxxxxxxxxxxxx010100,//BINSR.H
    32'b01111000010xxxxxxxxxxxxxxx010100,//BINSR.W
    32'b01111000100xxxxxxxxxxxxxxx001111,//BMNZ.V
    32'b01111000101xxxxxxxxxxxxxxx001111,//BMZ.V
    32'b01111000110xxxxxxxxxxxxxxx001111,//BSEL.V
    32'b01111000011xxxxxxxxxxxxxxx010011,//DPADD_S.D
    32'b01111000001xxxxxxxxxxxxxxx010011,//DPADD_S.H
    32'b01111000010xxxxxxxxxxxxxxx010011,//DPADD_S.W
    32'b01111000111xxxxxxxxxxxxxxx010011,//DPADD_U.D
    32'b01111000101xxxxxxxxxxxxxxx010011,//DPADD_U.H
    32'b01111000110xxxxxxxxxxxxxxx010011,//DPADD_U.W
    32'b01111001011xxxxxxxxxxxxxxx010011,//DPSUB_S.D
    32'b01111001001xxxxxxxxxxxxxxx010011,//DPSUB_S.H
    32'b01111001010xxxxxxxxxxxxxxx010011,//DPSUB_S.W
    32'b01111001111xxxxxxxxxxxxxxx010011,//DPSUB_U.D
    32'b01111001101xxxxxxxxxxxxxxx010011,//DPSUB_U.H
    32'b01111001110xxxxxxxxxxxxxxx010011,//DPSUB_U.W
    32'b01111010111xxxxxxxxxxxxxxx011011,//FMADD.D
    32'b01111010110xxxxxxxxxxxxxxx011011,//FMADD.W
    32'b01111011001xxxxxxxxxxxxxxx011011,//FMSUB.D
    32'b01111011000xxxxxxxxxxxxxxx011011,//FMSUB.W
    32'b01111000110xxxxxxxxxxxxxxx011011,//MADDR_Q.H
    32'b01111000111xxxxxxxxxxxxxxx011011,//MADDR_Q.W
    32'b01111010000xxxxxxxxxxxxxxx010010,//MADDV.B
    32'b01111010011xxxxxxxxxxxxxxx010010,//MADDV.D
    32'b01111010001xxxxxxxxxxxxxxx010010,//MADDV.H
    32'b01111010010xxxxxxxxxxxxxxx010010,//MADDV.W
    32'b01111000100xxxxxxxxxxxxxxx011011,//MADD_Q.H
    32'b01111000101xxxxxxxxxxxxxxx011011,//MADD_Q.W
    32'b01111001010xxxxxxxxxxxxxxx011011,//MSUBR_Q.H
    32'b01111001011xxxxxxxxxxxxxxx011011,//MSUBR_Q.W
    32'b01111010100xxxxxxxxxxxxxxx010010,//MSUBV.B
    32'b01111010111xxxxxxxxxxxxxxx010010,//MSUBV.D
    32'b01111010101xxxxxxxxxxxxxxx010010,//MSUBV.H
    32'b01111010110xxxxxxxxxxxxxxx010010,//MSUBV.W
    32'b01111001000xxxxxxxxxxxxxxx011011,//MSUB_Q.H
    32'b01111001001xxxxxxxxxxxxxxx011011,//MSUB_Q.W
    32'b01111000100xxxxxxxxxxxxxxx010101,//VSHF.B
    32'b01111000111xxxxxxxxxxxxxxx010101,//VSHF.D
    32'b01111000101xxxxxxxxxxxxxxx010101,//VSHF.H
    32'b01111000110xxxxxxxxxxxxxxx010101,//VSHF.W
    32'b010011xxxxxxxxxxxxxxxxxxxx100001,//MADD.D
    32'b010011xxxxxxxxxxxxxxxxxxxx100110,//MADD.PS
    32'b010011xxxxxxxxxxxxxxxxxxxx101001,//MSUB.D
    32'b010011xxxxxxxxxxxxxxxxxxxx101110,//MSUB.PS
    32'b010011xxxxxxxxxxxxxxxxxxxx110001,//NMADD.D
    32'b010011xxxxxxxxxxxxxxxxxxxx110110,//NMADD.PS
    32'b010011xxxxxxxxxxxxxxxxxxxx111001,//NMSUB.D
    32'b010011xxxxxxxxxxxxxxxxxxxx111110,//NMSUB.PS
    32'b0100011000100000xxxxxxxxxx001110,//CEIL.W.D
    32'b0100011000100000xxxxxxxxxx100000,//CVT.S.D
    32'b0100011010100000xxxxxxxxxx100000,//CVT.S.L
    32'b0100011000100000xxxxxxxxxx100100,//CVT.W.D
    32'b0100011000100000xxxxxxxxxx001111,//FLOOR.W.D
    32'b0100011000100000xxxxxxxxxx001100,//ROUND.W.D
    32'b0100011000100000xxxxxxxxxx001101,//TRUNC.W.D
    32'b01000100111xxxxxxxxxx00000000000,//MTHC1
    32'b110101xxxxxxxxxxxxxxxxxxxxxxxxxx,//LDC1
    32'b010011xxxxxxxxxx00000xxxxx000001,//LDXC1
    32'b010011xxxxxxxxxx00000xxxxx000101,//LUXC1
    32'b0100011011000000xxxxxxxxxx100000,//CVT.S.PU
    32'b0100011000000000xxxxxxxxxx000101,//ABS.S
    32'b0100011000000000xxxxxxxxxx001110,//CEIL.W.S
    32'b0100011011000000xxxxxxxxxx101000,//CVT.S.PL
    32'b0100011010000000xxxxxxxxxx100000,//CVT.S.W
    32'b0100011000000000xxxxxxxxxx100100,//CVT.W.S
    32'b0100011000000000xxxxxxxxxx001111,//FLOOR.W.S
    32'b0100011000000000xxxxxxxxxx000110,//MOV.S
    32'b0100011000000000xxxxxxxxxx000111,//NEG.S
    32'b0100011000000000xxxxxxxxxx010101,//RECIP.S
    32'b0100011000000000xxxxxxxxxx001100,//ROUND.W.S
    32'b0100011000000000xxxxxxxxxx010110,//RSQRT.S
    32'b0100011000000000xxxxxxxxxx000100,//SQRT.S
    32'b0100011000000000xxxxxxxxxx001101,//TRUNC.W.S
    32'b01111000100xxxxxxxxxxxxxxx000000,//ADDI_A.B
    32'b01111000111xxxxxxxxxxxxxxx000000,//ADDI_A.D
    32'b01111000101xxxxxxxxxxxxxxx000000,//ADDI_A.H
    32'b01111000110xxxxxxxxxxxxxxx000000,//ADDI_A.W
    32'b01111001000xxxxxxxxxxxxxxx000000,//ADDSI_A.B
    32'b01111001011xxxxxxxxxxxxxxx000000,//ADDSI_A.D
    32'b01111001001xxxxxxxxxxxxxxx000000,//ADDSI_A.H
    32'b01111001010xxxxxxxxxxxxxxx000000,//ADDSI_A.W
    32'b01111001100xxxxxxxxxxxxxxx000000,//ADDSI_S.B
    32'b01111001111xxxxxxxxxxxxxxx000000,//ADDSI_S.D
    32'b01111001101xxxxxxxxxxxxxxx000000,//ADDSI_S.H
    32'b01111001110xxxxxxxxxxxxxxx000000,//ADDSI_S.W
    32'b01111010000xxxxxxxxxxxxxxx000000,//ADDSI_U.B
    32'b01111010011xxxxxxxxxxxxxxx000000,//ADDSI_U.D
    32'b01111010001xxxxxxxxxxxxxxx000000,//ADDSI_U.H
    32'b01111010010xxxxxxxxxxxxxxx000000,//ADDSI_U.W
    32'b01111000000xxxxxxxxxxxxxxx000000,//ADDVI.B
    32'b01111000011xxxxxxxxxxxxxxx000000,//ADDVI.D
    32'b01111000001xxxxxxxxxxxxxxx000000,//ADDVI.H
    32'b01111000010xxxxxxxxxxxxxxx000000,//ADDVI.W
    32'b01111000xxxxxxxxxxxxxxxxxx001010,//ANDI.B
    32'b01111011000xxxxxxxxxxxxxxx000000,//ASUBI_S.B
    32'b01111011011xxxxxxxxxxxxxxx000000,//ASUBI_S.D
    32'b01111011001xxxxxxxxxxxxxxx000000,//ASUBI_S.H
    32'b01111011010xxxxxxxxxxxxxxx000000,//ASUBI_S.W
    32'b01111011100xxxxxxxxxxxxxxx000000,//ASUBI_U.B
    32'b01111011111xxxxxxxxxxxxxxx000000,//ASUBI_U.D
    32'b01111011101xxxxxxxxxxxxxxx000000,//ASUBI_U.H
    32'b01111011110xxxxxxxxxxxxxxx000000,//ASUBI_U.W
    32'b01111000100xxxxxxxxxxxxxxx000010,//AVEI_S.B
    32'b01111000111xxxxxxxxxxxxxxx000010,//AVEI_S.D
    32'b01111000101xxxxxxxxxxxxxxx000010,//AVEI_S.H
    32'b01111000110xxxxxxxxxxxxxxx000010,//AVEI_S.W
    32'b01111001000xxxxxxxxxxxxxxx000010,//AVEI_U.B
    32'b01111001011xxxxxxxxxxxxxxx000010,//AVEI_U.D
    32'b01111001001xxxxxxxxxxxxxxx000010,//AVEI_U.H
    32'b01111001010xxxxxxxxxxxxxxx000010,//AVEI_U.W
    32'b0111101111110xxxxxxxxxxxxx011110,//BCLRI.B
    32'b0111101110xxxxxxxxxxxxxxxx011110,//BCLRI.D
    32'b011110111110xxxxxxxxxxxxxx011110,//BCLRI.H
    32'b01111011110xxxxxxxxxxxxxxx011110,//BCLRI.W
    32'b0111100011110xxxxxxxxxxxxx011111,//BNEGI.B
    32'b0111100010xxxxxxxxxxxxxxxx011111,//BNEGI.D
    32'b011110001110xxxxxxxxxxxxxx011111,//BNEGI.H
    32'b01111000110xxxxxxxxxxxxxxx011111,//BNEGI.W
    32'b0111100001110xxxxxxxxxxxxx011111,//BSETI.B
    32'b0111100000xxxxxxxxxxxxxxxx011111,//BSETI.D
    32'b011110000110xxxxxxxxxxxxxx011111,//BSETI.H
    32'b01111000010xxxxxxxxxxxxxxx011111,//BSETI.W
    32'b01111010000xxxxxxxxxxxxxxx000011,//CEQI.B
    32'b01111010011xxxxxxxxxxxxxxx000011,//CEQI.D
    32'b01111010001xxxxxxxxxxxxxxx000011,//CEQI.H
    32'b01111010010xxxxxxxxxxxxxxx000011,//CEQI.W
    32'b01111011000xxxxxxxxxxxxxxx000011,//CLEI_S.B
    32'b01111011011xxxxxxxxxxxxxxx000011,//CLEI_S.D
    32'b01111011001xxxxxxxxxxxxxxx000011,//CLEI_S.H
    32'b01111011010xxxxxxxxxxxxxxx000011,//CLEI_S.W
    32'b01111000000xxxxxxxxxxxxxxx000100,//CLEI_U.B
    32'b01111000011xxxxxxxxxxxxxxx000100,//CLEI_U.D
    32'b01111000001xxxxxxxxxxxxxxx000100,//CLEI_U.H
    32'b01111000010xxxxxxxxxxxxxxx000100,//CLEI_U.W
    32'b01111010100xxxxxxxxxxxxxxx000011,//CLTI_S.B
    32'b01111010111xxxxxxxxxxxxxxx000011,//CLTI_S.D
    32'b01111010101xxxxxxxxxxxxxxx000011,//CLTI_S.H
    32'b01111010110xxxxxxxxxxxxxxx000011,//CLTI_S.W
    32'b01111011100xxxxxxxxxxxxxxx000011,//CLTI_U.B
    32'b01111011111xxxxxxxxxxxxxxx000011,//CLTI_U.D
    32'b01111011101xxxxxxxxxxxxxxx000011,//CLTI_U.H
    32'b01111011110xxxxxxxxxxxxxxx000011,//CLTI_U.W
    32'b01111011011xxxxxxxxxxxxxxx000010,//DOTPI_S.D
    32'b01111011001xxxxxxxxxxxxxxx000010,//DOTPI_S.H
    32'b01111011010xxxxxxxxxxxxxxx000010,//DOTPI_S.W
    32'b01111011111xxxxxxxxxxxxxxx000010,//DOTPI_U.D
    32'b01111011101xxxxxxxxxxxxxxx000010,//DOTPI_U.H
    32'b01111011110xxxxxxxxxxxxxxx000010,//DOTPI_U.W
    32'b0111101111000111xxxxxxxxxx001111,//FCLASS.D
    32'b0111101111000110xxxxxxxxxx001111,//FCLASS.W
    32'b0111101111010101xxxxxxxxxx001111,//FEXUPL.D
    32'b0111101111010100xxxxxxxxxx001111,//FEXUPL.W
    32'b0111101111010111xxxxxxxxxx001111,//FEXUPR.D
    32'b0111101111010110xxxxxxxxxx001111,//FEXUPR.W
    32'b0111101111001011xxxxxxxxxx001111,//FFINT_S.D
    32'b0111101111001010xxxxxxxxxx001111,//FFINT_S.W
    32'b0111101111001111xxxxxxxxxx001111,//FFINT_U.D
    32'b0111101111001110xxxxxxxxxx001111,//FFINT_U.W
    32'b0111101111010001xxxxxxxxxx001111,//FFQL.D
    32'b0111101111010000xxxxxxxxxx001111,//FFQL.W
    32'b0111101111010011xxxxxxxxxx001111,//FFQR.D
    32'b0111101111010010xxxxxxxxxx001111,//FFQR.W
    32'b0111101111000101xxxxxxxxxx001111,//FLOG2.D
    32'b0111101111000100xxxxxxxxxx001111,//FLOG2.W
    32'b0111101111000011xxxxxxxxxx001111,//FRINT.D
    32'b0111101111000010xxxxxxxxxx001111,//FRINT.W
    32'b0111101111000001xxxxxxxxxx001111,//FSQRT.D
    32'b0111101111000000xxxxxxxxxx001111,//FSQRT.W
    32'b0111101111001001xxxxxxxxxx001111,//FTINT_S.D
    32'b0111101111001000xxxxxxxxxx001111,//FTINT_S.W
    32'b0111101111001101xxxxxxxxxx001111,//FTINT_U.D
    32'b0111101111001100xxxxxxxxxx001111,//FTINT_U.W
    32'b01111001100xxxxxxxxxxxxxxx000001,//MAXI_A.B
    32'b01111001111xxxxxxxxxxxxxxx000001,//MAXI_A.D
    32'b01111001101xxxxxxxxxxxxxxx000001,//MAXI_A.H
    32'b01111001110xxxxxxxxxxxxxxx000001,//MAXI_A.W
    32'b01111010000xxxxxxxxxxxxxxx000001,//MAXI_S.B
    32'b01111010011xxxxxxxxxxxxxxx000001,//MAXI_S.D
    32'b01111010001xxxxxxxxxxxxxxx000001,//MAXI_S.H
    32'b01111010010xxxxxxxxxxxxxxx000001,//MAXI_S.W
    32'b01111010100xxxxxxxxxxxxxxx000001,//MAXI_U.B
    32'b01111010111xxxxxxxxxxxxxxx000001,//MAXI_U.D
    32'b01111010101xxxxxxxxxxxxxxx000001,//MAXI_U.H
    32'b01111010110xxxxxxxxxxxxxxx000001,//MAXI_U.W
    32'b01111011000xxxxxxxxxxxxxxx000001,//MINI_A.B
    32'b01111011011xxxxxxxxxxxxxxx000001,//MINI_A.D
    32'b01111011001xxxxxxxxxxxxxxx000001,//MINI_A.H
    32'b01111011010xxxxxxxxxxxxxxx000001,//MINI_A.W
    32'b01111011100xxxxxxxxxxxxxxx000001,//MINI_S.B
    32'b01111011111xxxxxxxxxxxxxxx000001,//MINI_S.D
    32'b01111011101xxxxxxxxxxxxxxx000001,//MINI_S.H
    32'b01111011110xxxxxxxxxxxxxxx000001,//MINI_S.W
    32'b01111000000xxxxxxxxxxxxxxx000010,//MINI_U.B
    32'b01111000011xxxxxxxxxxxxxxx000010,//MINI_U.D
    32'b01111000001xxxxxxxxxxxxxxx000010,//MINI_U.H
    32'b01111000010xxxxxxxxxxxxxxx000010,//MINI_U.W
    32'b01111000010xxxxxxxxxxxxxxx011010,//MOVE.B
    32'b01111000011110xxxxxxxxxxxx011010,//MOVE.D
    32'b011110000110xxxxxxxxxxxxxx011010,//MOVE.H
    32'b0111100001111110xxxxxxxxxx011010,//MOVE.V
    32'b0111100001110xxxxxxxxxxxxx011010,//MOVE.W
    32'b01111000000xxxxxxxxxxxxxxx010110,//MOVER.B
    32'b01111000011xxxxxxxxxxxxxxx010110,//MOVER.D
    32'b01111000001xxxxxxxxxxxxxxx010110,//MOVER.H
    32'b01111000010xxxxxxxxxxxxxxx010110,//MOVER.W
    32'b01111001100xxxxxxxxxxxxxxx000010,//MULVI.B
    32'b01111001111xxxxxxxxxxxxxxx000010,//MULVI.D
    32'b01111001101xxxxxxxxxxxxxxx000010,//MULVI.H
    32'b01111001110xxxxxxxxxxxxxxx000010,//MULVI.W
    32'b01111001000xxxxxxxxxxxxxxx011010,//MVFGE.B
    32'b011110010010xxxxxxxxxxxxxx011010,//MVFGE.H
    32'b0111100100110xxxxxxxxxxxxx011010,//MVFGE.W
    32'b01111010000xxxxxxxxxxxxxxx010110,//MVFGER.B
    32'b01111010001xxxxxxxxxxxxxxx010110,//MVFGER.H
    32'b01111010010xxxxxxxxxxxxxxx010110,//MVFGER.W
    32'b0111101110001000xxxxxxxxxx001111,//NLOC.B
    32'b0111101110001011xxxxxxxxxx001111,//NLOC.D
    32'b0111101110001001xxxxxxxxxx001111,//NLOC.H
    32'b0111101110001010xxxxxxxxxx001111,//NLOC.W
    32'b0111101110001100xxxxxxxxxx001111,//NLZC.B
    32'b0111101110001111xxxxxxxxxx001111,//NLZC.D
    32'b0111101110001101xxxxxxxxxx001111,//NLZC.H
    32'b0111101110001110xxxxxxxxxx001111,//NLZC.W
    32'b01111010xxxxxxxxxxxxxxxxxx001010,//NORI.B
    32'b01111001xxxxxxxxxxxxxxxxxx001010,//ORI.B
    32'b0111101110000100xxxxxxxxxx001111,//PCNT.B
    32'b0111101110000111xxxxxxxxxx001111,//PCNT.D
    32'b0111101110000101xxxxxxxxxx001111,//PCNT.H
    32'b0111101110000110xxxxxxxxxx001111,//PCNT.W
    32'b0111100001110xxxxxxxxxxxxx011110,//SAT_S.B
    32'b0111100000xxxxxxxxxxxxxxxx011110,//SAT_S.D
    32'b011110000110xxxxxxxxxxxxxx011110,//SAT_S.H
    32'b01111000010xxxxxxxxxxxxxxx011110,//SAT_S.W
    32'b0111100011110xxxxxxxxxxxxx011110,//SAT_U.B
    32'b0111100010xxxxxxxxxxxxxxxx011110,//SAT_U.D
    32'b011110001110xxxxxxxxxxxxxx011110,//SAT_U.H
    32'b01111000110xxxxxxxxxxxxxxx011110,//SAT_U.W
    32'b01111011xxxxxxxxxxxxxxxxxx001011,//SHF.B
    32'b01111000xxxxxxxxxxxxxxxxxx001100,//SHF.H
    32'b01111001xxxxxxxxxxxxxxxxxx001100,//SHF.W
    32'b0111100101110xxxxxxxxxxxxx011110,//SHLI.B
    32'b0111100100xxxxxxxxxxxxxxxx011110,//SHLI.D
    32'b011110010110xxxxxxxxxxxxxx011110,//SHLI.H
    32'b01111001010xxxxxxxxxxxxxxx011110,//SHLI.W
    32'b0111100111110xxxxxxxxxxxxx011110,//SRAI.B
    32'b0111100110xxxxxxxxxxxxxxxx011110,//SRAI.D
    32'b011110011110xxxxxxxxxxxxxx011110,//SRAI.H
    32'b01111001110xxxxxxxxxxxxxxx011110,//SRAI.W
    32'b0111101001110xxxxxxxxxxxxx011110,//SRLI.B
    32'b0111101000xxxxxxxxxxxxxxxx011110,//SRLI.D
    32'b011110100110xxxxxxxxxxxxxx011110,//SRLI.H
    32'b01111010010xxxxxxxxxxxxxxx011110,//SRLI.W
    32'b01111000000xxxxxxxxxxxxxxx000001,//SUBSI_S.B
    32'b01111000011xxxxxxxxxxxxxxx000001,//SUBSI_S.D
    32'b01111000001xxxxxxxxxxxxxxx000001,//SUBSI_S.H
    32'b01111000010xxxxxxxxxxxxxxx000001,//SUBSI_S.W
    32'b01111000100xxxxxxxxxxxxxxx000001,//SUBSI_U.B
    32'b01111000111xxxxxxxxxxxxxxx000001,//SUBSI_U.D
    32'b01111000101xxxxxxxxxxxxxxx000001,//SUBSI_U.H
    32'b01111000110xxxxxxxxxxxxxxx000001,//SUBSI_U.W
    32'b01111001000xxxxxxxxxxxxxxx000001,//SUBSSI_U.B
    32'b01111001011xxxxxxxxxxxxxxx000001,//SUBSSI_U.D
    32'b01111001001xxxxxxxxxxxxxxx000001,//SUBSSI_U.H
    32'b01111001010xxxxxxxxxxxxxxx000001,//SUBSSI_U.W
    32'b01111010100xxxxxxxxxxxxxxx000000,//SUBVI.B
    32'b01111010111xxxxxxxxxxxxxxx000000,//SUBVI.D
    32'b01111010101xxxxxxxxxxxxxxx000000,//SUBVI.H
    32'b01111010110xxxxxxxxxxxxxxx000000,//SUBVI.W
    32'b01111011xxxxxxxxxxxxxxxxxx001010,//XORI.B
    32'b0100011000100000xxxxxxxxxx000101,//ABS.D
    32'b0100011011000000xxxxxxxxxx000101,//ABS.PS
    32'b0100011000100000xxxxxxxxxx001010,//CEIL.L.D
    32'b0100011010100000xxxxxxxxxx100001,//CVT.D.L
    32'b0100011000100000xxxxxxxxxx100101,//CVT.L.D
    32'b0100011000100000xxxxxxxxxx001011,//FLOOR.L.D
    32'b0100011000100000xxxxxxxxxx000110,//MOV.D
    32'b0100011011000000xxxxxxxxxx000110,//MOV.PS
    32'b0100011000100000xxxxxxxxxx000111,//NEG.D
    32'b0100011011000000xxxxxxxxxx000111,//NEG.PS
    32'b0100011000100000xxxxxxxxxx010101,//RECIP.D
    32'b0100011000100000xxxxxxxxxx001000,//ROUND.L.D
    32'b0100011000100000xxxxxxxxxx010110,//RSQRT.D
    32'b0100011000100000xxxxxxxxxx000100,//SQRT.D
    32'b0100011000100000xxxxxxxxxx001001,//TRUNC.L.D
    32'b0111101011110xxxxxxxxxxxxx011110,//BINSLI.B
    32'b0111101010xxxxxxxxxxxxxxxx011110,//BINSLI.D
    32'b011110101110xxxxxxxxxxxxxx011110,//BINSLI.H
    32'b01111010110xxxxxxxxxxxxxxx011110,//BINSLI.W
    32'b0111101101110xxxxxxxxxxxxx011110,//BINSRI.B
    32'b0111101100xxxxxxxxxxxxxxxx011110,//BINSRI.D
    32'b011110110110xxxxxxxxxxxxxx011110,//BINSRI.H
    32'b01111011010xxxxxxxxxxxxxxx011110,//BINSRI.W
    32'b01111000xxxxxxxxxxxxxxxxxx001011,//BMNZI.B
    32'b01111001xxxxxxxxxxxxxxxxxx001011,//BMZI.B
    32'b01111010xxxxxxxxxxxxxxxxxx001011,//BSELI.B
    32'b01111000011xxxxxxxxxxxxxxx000011,//DPADDI_S.D
    32'b01111000001xxxxxxxxxxxxxxx000011,//DPADDI_S.H
    32'b01111000010xxxxxxxxxxxxxxx000011,//DPADDI_S.W
    32'b01111000111xxxxxxxxxxxxxxx000011,//DPADDI_U.D
    32'b01111000101xxxxxxxxxxxxxxx000011,//DPADDI_U.H
    32'b01111000110xxxxxxxxxxxxxxx000011,//DPADDI_U.W
    32'b01111001011xxxxxxxxxxxxxxx000011,//DPSUBI_S.D
    32'b01111001001xxxxxxxxxxxxxxx000011,//DPSUBI_S.H
    32'b01111001010xxxxxxxxxxxxxxx000011,//DPSUBI_S.W
    32'b01111001111xxxxxxxxxxxxxxx000011,//DPSUBI_U.D
    32'b01111001101xxxxxxxxxxxxxxx000011,//DPSUBI_U.H
    32'b01111001110xxxxxxxxxxxxxxx000011,//DPSUBI_U.W
    32'b01111010000xxxxxxxxxxxxxxx000010,//MADDVI.B
    32'b01111010011xxxxxxxxxxxxxxx000010,//MADDVI.D
    32'b01111010001xxxxxxxxxxxxxxx000010,//MADDVI.H
    32'b01111010010xxxxxxxxxxxxxxx000010,//MADDVI.W
    32'b01111010100xxxxxxxxxxxxxxx000010,//MSUBVI.B
    32'b01111010111xxxxxxxxxxxxxxx000010,//MSUBVI.D
    32'b01111010101xxxxxxxxxxxxxxx000010,//MSUBVI.H
    32'b01111010110xxxxxxxxxxxxxxx000010://MSUBVI.W
        op=1;
        endcase

fxu_acc_op_gen=op;
end
endfunction
//============================================================
// build by build_insn_access
// generate decode access idx
//============================================================
task automatic fxu_acc_idx_gen;
    input [31:0] i_insn;
    output [4:0] o_idx_fa;
    output [4:0] o_idx_fb;
    output [4:0] o_idx_fc;
    output [4:0] o_idx_fx;
    output [4:0] o_idx_ma;
    output [4:0] o_idx_mb;
    output [4:0] o_idx_mc;
    output [4:0] o_idx_mx;
    begin

//------------------------------------------------------------

    o_idx_fa=i_insn[15:11];

//------------------------------------------------------------

    casex(i_insn)
    32'b01000110001xxx00xxxxxxxxxx010001,//MOVF.D
    32'b01000110110xxx00xxxxxxxxxx010001,//MOVF.PS
    32'b01000110000xxx00xxxxxxxxxx010001,//MOVF.S
    32'b01000110001xxxxxxxxxxxxxxx010011,//MOVN.D
    32'b01000110110xxxxxxxxxxxxxxx010011,//MOVN.PS
    32'b01000110000xxxxxxxxxxxxxxx010011,//MOVN.S
    32'b01000110001xxx01xxxxxxxxxx010001,//MOVT.D
    32'b01000110110xxx01xxxxxxxxxx010001,//MOVT.PS
    32'b01000110000xxx01xxxxxxxxxx010001,//MOVT.S
    32'b01000110001xxxxxxxxxxxxxxx010010,//MOVZ.D
    32'b01000110110xxxxxxxxxxxxxxx010010,//MOVZ.PS
    32'b01000110000xxxxxxxxxxxxxxx010010://MOVZ.S
        o_idx_fb=i_insn[10: 6];
    default:
        o_idx_fb=i_insn[20:16];
    endcase

//------------------------------------------------------------

    o_idx_fc=i_insn[25:21];

//------------------------------------------------------------

    casex(i_insn)
    32'b01000100100xxxxxxxxxx00000000000,//MTC1
    32'b01000100111xxxxxxxxxx00000000000://MTHC1
        o_idx_fx=i_insn[15:11];
    32'b110101xxxxxxxxxxxxxxxxxxxxxxxxxx,//LDC1
    32'b110001xxxxxxxxxxxxxxxxxxxxxxxxxx://LWC1
        o_idx_fx=i_insn[20:16];
    default:
        o_idx_fx=i_insn[10: 6];
    endcase

//------------------------------------------------------------

    casex(i_insn)
    32'b01111000000xxxxxxxxxxxxxxx001110,//BNZ.B
    32'b01111000011xxxxxxxxxxxxxxx001110,//BNZ.D
    32'b01111000001xxxxxxxxxxxxxxx001110,//BNZ.H
    32'b01111000111xxxxxxxxxxxxxxx001111,//BNZ.V
    32'b01111000010xxxxxxxxxxxxxxx001110,//BNZ.W
    32'b01111000100xxxxxxxxxxxxxxx001110,//BZ.B
    32'b01111000111xxxxxxxxxxxxxxx001110,//BZ.D
    32'b01111000101xxxxxxxxxxxxxxx001110,//BZ.H
    32'b01111001000xxxxxxxxxxxxxxx001111,//BZ.V
    32'b01111000110xxxxxxxxxxxxxxx001110,//BZ.W
    32'b01111001000xxxxxxxxxxxxxxx011010,//MVFGE.B
    32'b011110010010xxxxxxxxxxxxxx011010,//MVFGE.H
    32'b0111100100110xxxxxxxxxxxxx011010,//MVFGE.W
    32'b01111010000xxxxxxxxxxxxxxx010110,//MVFGER.B
    32'b01111010001xxxxxxxxxxxxxxx010110,//MVFGER.H
    32'b01111010010xxxxxxxxxxxxxxx010110,//MVFGER.W
    32'b01111001101xxxxxxxxxxxxxxx001111,//ST.V
    32'b01111001110xxxxxxxxxxxxxxx001111://STX.V
        o_idx_ma=i_insn[10: 6];
    default:
        o_idx_ma=i_insn[15:11];
    endcase

//------------------------------------------------------------

    casex(i_insn)
    32'b01111000000xxxxxxxxxxxxxxx011010,//SLD.B
    32'b01111000001110xxxxxxxxxxxx011010,//SLD.D
    32'b011110000010xxxxxxxxxxxxxx011010,//SLD.H
    32'b0111100000110xxxxxxxxxxxxx011010,//SLD.W
    32'b01111001100xxxxxxxxxxxxxxx010110,//SLDR.B
    32'b01111001111xxxxxxxxxxxxxxx010110,//SLDR.D
    32'b01111001101xxxxxxxxxxxxxxx010110,//SLDR.H
    32'b01111001110xxxxxxxxxxxxxxx010110://SLDR.W
        o_idx_mb=i_insn[10: 6];
    default:
        o_idx_mb=i_insn[20:16];
    endcase

//------------------------------------------------------------

    o_idx_mc=i_insn[10: 6];

//------------------------------------------------------------

    o_idx_mx=i_insn[10: 6];


    end
endtask

//============================================================
// build by build_insn_extend
// generate imd sel
//============================================================
function automatic [9:0] fxu_imd_sel_gen;
    input [31:0] i_insn;
    begin
    fxu_imd_sel_gen=0;
    casex(i_insn)
       32'b01111000xxxxxxxxxxxxxxxxxx001011,//BMNZI.B
       32'b01111011xxxxxxxxxxxxxxxxxx001010,//XORI.B
       32'b01111001xxxxxxxxxxxxxxxxxx001010,//ORI.B
       32'b01111001xxxxxxxxxxxxxxxxxx001100,//SHF.W
       32'b01111011xxxxxxxxxxxxxxxxxx001011,//SHF.B
       32'b01111000xxxxxxxxxxxxxxxxxx001100,//SHF.H
       32'b01111000xxxxxxxxxxxxxxxxxx001010,//ANDI.B
       32'b01111010xxxxxxxxxxxxxxxxxx001010,//NORI.B
       32'b01111001xxxxxxxxxxxxxxxxxx001011,//BMZI.B
       32'b01111010xxxxxxxxxxxxxxxxxx001011://BSELI.B
            fxu_imd_sel_gen[7:0]=i_insn[23:16];
       32'b01111000100xxxxxxxxxxxxxxx000000,//ADDI_A.B
       32'b01111000111xxxxxxxxxxxxxxx000000,//ADDI_A.D
       32'b01111000101xxxxxxxxxxxxxxx000000,//ADDI_A.H
       32'b01111000110xxxxxxxxxxxxxxx000000,//ADDI_A.W
       32'b01111001000xxxxxxxxxxxxxxx000000,//ADDSI_A.B
       32'b01111001011xxxxxxxxxxxxxxx000000,//ADDSI_A.D
       32'b01111001001xxxxxxxxxxxxxxx000000,//ADDSI_A.H
       32'b01111001010xxxxxxxxxxxxxxx000000,//ADDSI_A.W
       32'b01111001100xxxxxxxxxxxxxxx000000,//ADDSI_S.B
       32'b01111001111xxxxxxxxxxxxxxx000000,//ADDSI_S.D
       32'b01111001101xxxxxxxxxxxxxxx000000,//ADDSI_S.H
       32'b01111001110xxxxxxxxxxxxxxx000000,//ADDSI_S.W
       32'b01111010000xxxxxxxxxxxxxxx000000,//ADDSI_U.B
       32'b01111010011xxxxxxxxxxxxxxx000000,//ADDSI_U.D
       32'b01111010001xxxxxxxxxxxxxxx000000,//ADDSI_U.H
       32'b01111010010xxxxxxxxxxxxxxx000000,//ADDSI_U.W
       32'b01111000000xxxxxxxxxxxxxxx000000,//ADDVI.B
       32'b01111000011xxxxxxxxxxxxxxx000000,//ADDVI.D
       32'b01111000001xxxxxxxxxxxxxxx000000,//ADDVI.H
       32'b01111000010xxxxxxxxxxxxxxx000000,//ADDVI.W
       32'b01111011000xxxxxxxxxxxxxxx000000,//ASUBI_S.B
       32'b01111011011xxxxxxxxxxxxxxx000000,//ASUBI_S.D
       32'b01111011001xxxxxxxxxxxxxxx000000,//ASUBI_S.H
       32'b01111011010xxxxxxxxxxxxxxx000000,//ASUBI_S.W
       32'b01111011100xxxxxxxxxxxxxxx000000,//ASUBI_U.B
       32'b01111011111xxxxxxxxxxxxxxx000000,//ASUBI_U.D
       32'b01111011101xxxxxxxxxxxxxxx000000,//ASUBI_U.H
       32'b01111011110xxxxxxxxxxxxxxx000000,//ASUBI_U.W
       32'b01111000100xxxxxxxxxxxxxxx000010,//AVEI_S.B
       32'b01111000111xxxxxxxxxxxxxxx000010,//AVEI_S.D
       32'b01111000101xxxxxxxxxxxxxxx000010,//AVEI_S.H
       32'b01111000110xxxxxxxxxxxxxxx000010,//AVEI_S.W
       32'b01111001000xxxxxxxxxxxxxxx000010,//AVEI_U.B
       32'b01111001011xxxxxxxxxxxxxxx000010,//AVEI_U.D
       32'b01111001001xxxxxxxxxxxxxxx000010,//AVEI_U.H
       32'b01111001010xxxxxxxxxxxxxxx000010,//AVEI_U.W
       32'b01111010000xxxxxxxxxxxxxxx000011,//CEQI.B
       32'b01111010011xxxxxxxxxxxxxxx000011,//CEQI.D
       32'b01111010001xxxxxxxxxxxxxxx000011,//CEQI.H
       32'b01111010010xxxxxxxxxxxxxxx000011,//CEQI.W
       32'b01111011000xxxxxxxxxxxxxxx000011,//CLEI_S.B
       32'b01111011011xxxxxxxxxxxxxxx000011,//CLEI_S.D
       32'b01111011001xxxxxxxxxxxxxxx000011,//CLEI_S.H
       32'b01111011010xxxxxxxxxxxxxxx000011,//CLEI_S.W
       32'b01111000000xxxxxxxxxxxxxxx000100,//CLEI_U.B
       32'b01111000011xxxxxxxxxxxxxxx000100,//CLEI_U.D
       32'b01111000001xxxxxxxxxxxxxxx000100,//CLEI_U.H
       32'b01111000010xxxxxxxxxxxxxxx000100,//CLEI_U.W
       32'b01111010100xxxxxxxxxxxxxxx000011,//CLTI_S.B
       32'b01111010111xxxxxxxxxxxxxxx000011,//CLTI_S.D
       32'b01111010101xxxxxxxxxxxxxxx000011,//CLTI_S.H
       32'b01111010110xxxxxxxxxxxxxxx000011,//CLTI_S.W
       32'b01111011100xxxxxxxxxxxxxxx000011,//CLTI_U.B
       32'b01111011111xxxxxxxxxxxxxxx000011,//CLTI_U.D
       32'b01111011101xxxxxxxxxxxxxxx000011,//CLTI_U.H
       32'b01111011110xxxxxxxxxxxxxxx000011,//CLTI_U.W
       32'b01111011011xxxxxxxxxxxxxxx000010,//DOTPI_S.D
       32'b01111011001xxxxxxxxxxxxxxx000010,//DOTPI_S.H
       32'b01111011010xxxxxxxxxxxxxxx000010,//DOTPI_S.W
       32'b01111011111xxxxxxxxxxxxxxx000010,//DOTPI_U.D
       32'b01111011101xxxxxxxxxxxxxxx000010,//DOTPI_U.H
       32'b01111011110xxxxxxxxxxxxxxx000010,//DOTPI_U.W
       32'b01111000011xxxxxxxxxxxxxxx000011,//DPADDI_S.D
       32'b01111000001xxxxxxxxxxxxxxx000011,//DPADDI_S.H
       32'b01111000010xxxxxxxxxxxxxxx000011,//DPADDI_S.W
       32'b01111000111xxxxxxxxxxxxxxx000011,//DPADDI_U.D
       32'b01111000101xxxxxxxxxxxxxxx000011,//DPADDI_U.H
       32'b01111000110xxxxxxxxxxxxxxx000011,//DPADDI_U.W
       32'b01111001011xxxxxxxxxxxxxxx000011,//DPSUBI_S.D
       32'b01111001001xxxxxxxxxxxxxxx000011,//DPSUBI_S.H
       32'b01111001010xxxxxxxxxxxxxxx000011,//DPSUBI_S.W
       32'b01111001111xxxxxxxxxxxxxxx000011,//DPSUBI_U.D
       32'b01111001101xxxxxxxxxxxxxxx000011,//DPSUBI_U.H
       32'b01111001110xxxxxxxxxxxxxxx000011,//DPSUBI_U.W
       32'b01111010000xxxxxxxxxxxxxxx000010,//MADDVI.B
       32'b01111010011xxxxxxxxxxxxxxx000010,//MADDVI.D
       32'b01111010001xxxxxxxxxxxxxxx000010,//MADDVI.H
       32'b01111010010xxxxxxxxxxxxxxx000010,//MADDVI.W
       32'b01111001100xxxxxxxxxxxxxxx000001,//MAXI_A.B
       32'b01111001111xxxxxxxxxxxxxxx000001,//MAXI_A.D
       32'b01111001101xxxxxxxxxxxxxxx000001,//MAXI_A.H
       32'b01111001110xxxxxxxxxxxxxxx000001,//MAXI_A.W
       32'b01111010000xxxxxxxxxxxxxxx000001,//MAXI_S.B
       32'b01111010011xxxxxxxxxxxxxxx000001,//MAXI_S.D
       32'b01111010001xxxxxxxxxxxxxxx000001,//MAXI_S.H
       32'b01111010010xxxxxxxxxxxxxxx000001,//MAXI_S.W
       32'b01111010100xxxxxxxxxxxxxxx000001,//MAXI_U.B
       32'b01111010111xxxxxxxxxxxxxxx000001,//MAXI_U.D
       32'b01111010101xxxxxxxxxxxxxxx000001,//MAXI_U.H
       32'b01111010110xxxxxxxxxxxxxxx000001,//MAXI_U.W
       32'b01111011000xxxxxxxxxxxxxxx000001,//MINI_A.B
       32'b01111011011xxxxxxxxxxxxxxx000001,//MINI_A.D
       32'b01111011001xxxxxxxxxxxxxxx000001,//MINI_A.H
       32'b01111011010xxxxxxxxxxxxxxx000001,//MINI_A.W
       32'b01111011100xxxxxxxxxxxxxxx000001,//MINI_S.B
       32'b01111011111xxxxxxxxxxxxxxx000001,//MINI_S.D
       32'b01111011101xxxxxxxxxxxxxxx000001,//MINI_S.H
       32'b01111011110xxxxxxxxxxxxxxx000001,//MINI_S.W
       32'b01111000000xxxxxxxxxxxxxxx000010,//MINI_U.B
       32'b01111000011xxxxxxxxxxxxxxx000010,//MINI_U.D
       32'b01111000001xxxxxxxxxxxxxxx000010,//MINI_U.H
       32'b01111000010xxxxxxxxxxxxxxx000010,//MINI_U.W
       32'b01111010100xxxxxxxxxxxxxxx000010,//MSUBVI.B
       32'b01111010111xxxxxxxxxxxxxxx000010,//MSUBVI.D
       32'b01111010101xxxxxxxxxxxxxxx000010,//MSUBVI.H
       32'b01111010110xxxxxxxxxxxxxxx000010,//MSUBVI.W
       32'b01111001100xxxxxxxxxxxxxxx000010,//MULVI.B
       32'b01111001111xxxxxxxxxxxxxxx000010,//MULVI.D
       32'b01111001101xxxxxxxxxxxxxxx000010,//MULVI.H
       32'b01111001110xxxxxxxxxxxxxxx000010,//MULVI.W
       32'b01111000000xxxxxxxxxxxxxxx000001,//SUBSI_S.B
       32'b01111000011xxxxxxxxxxxxxxx000001,//SUBSI_S.D
       32'b01111000001xxxxxxxxxxxxxxx000001,//SUBSI_S.H
       32'b01111000010xxxxxxxxxxxxxxx000001,//SUBSI_S.W
       32'b01111000100xxxxxxxxxxxxxxx000001,//SUBSI_U.B
       32'b01111000111xxxxxxxxxxxxxxx000001,//SUBSI_U.D
       32'b01111000101xxxxxxxxxxxxxxx000001,//SUBSI_U.H
       32'b01111000110xxxxxxxxxxxxxxx000001,//SUBSI_U.W
       32'b01111001000xxxxxxxxxxxxxxx000001,//SUBSSI_U.B
       32'b01111001011xxxxxxxxxxxxxxx000001,//SUBSSI_U.D
       32'b01111001001xxxxxxxxxxxxxxx000001,//SUBSSI_U.H
       32'b01111001010xxxxxxxxxxxxxxx000001,//SUBSSI_U.W
       32'b01111010100xxxxxxxxxxxxxxx000000,//SUBVI.B
       32'b01111010111xxxxxxxxxxxxxxx000000,//SUBVI.D
       32'b01111010101xxxxxxxxxxxxxxx000000,//SUBVI.H
       32'b01111010110xxxxxxxxxxxxxxx000000://SUBVI.W
            fxu_imd_sel_gen[4:0]=i_insn[20:16];
       32'b01111001010xxxxxxxxxxxxxxx001110,//LDI.W
       32'b01111001001xxxxxxxxxxxxxxx001110,//LDI.H
       32'b01111001000xxxxxxxxxxxxxxx001110,//LDI.B
       32'b01111001011xxxxxxxxxxxxxxx001110://LDI.D
            fxu_imd_sel_gen[9:0]=i_insn[20:11];
       32'b0111100000xxxxxxxxxxxxxxxx011110,//SAT_S.D
       32'b01111011110xxxxxxxxxxxxxxx011110,//BCLRI.W
       32'b0111101011110xxxxxxxxxxxxx011110,//BINSLI.B
       32'b0111101010xxxxxxxxxxxxxxxx011110,//BINSLI.D
       32'b01111000110xxxxxxxxxxxxxxx011110,//SAT_U.W
       32'b011110101110xxxxxxxxxxxxxx011110,//BINSLI.H
       32'b0111101110xxxxxxxxxxxxxxxx011110,//BCLRI.D
       32'b0111100011110xxxxxxxxxxxxx011110,//SAT_U.B
       32'b0111100010xxxxxxxxxxxxxxxx011110,//SAT_U.D
       32'b01111010110xxxxxxxxxxxxxxx011110,//BINSLI.W
       32'b011110001110xxxxxxxxxxxxxx011110,//SAT_U.H
       32'b011110111110xxxxxxxxxxxxxx011110,//BCLRI.H
       32'b01111001110xxxxxxxxxxxxxxx011110,//SRAI.W
       32'b011110011110xxxxxxxxxxxxxx011110,//SRAI.H
       32'b0111100110xxxxxxxxxxxxxxxx011110,//SRAI.D
       32'b01111000010xxxxxxxxxxxxxxx011111,//BSETI.W
       32'b011110110110xxxxxxxxxxxxxx011110,//BINSRI.H
       32'b011110000110xxxxxxxxxxxxxx011110,//SAT_S.H
       32'b0111100001110xxxxxxxxxxxxx011110,//SAT_S.B
       32'b0111100000xxxxxxxxxxxxxxxx011111,//BSETI.D
       32'b0111100001110xxxxxxxxxxxxx011111,//BSETI.B
       32'b01111000010xxxxxxxxxxxxxxx011110,//SAT_S.W
       32'b011110000110xxxxxxxxxxxxxx011111,//BSETI.H
       32'b011110100110xxxxxxxxxxxxxx011110,//SRLI.H
       32'b0111101001110xxxxxxxxxxxxx011110,//SRLI.B
       32'b0111101000xxxxxxxxxxxxxxxx011110,//SRLI.D
       32'b01111010010xxxxxxxxxxxxxxx011110,//SRLI.W
       32'b011110001110xxxxxxxxxxxxxx011111,//BNEGI.H
       32'b0111100011110xxxxxxxxxxxxx011111,//BNEGI.B
       32'b0111101111110xxxxxxxxxxxxx011110,//BCLRI.B
       32'b0111100010xxxxxxxxxxxxxxxx011111,//BNEGI.D
       32'b01111000110xxxxxxxxxxxxxxx011111,//BNEGI.W
       32'b0111100111110xxxxxxxxxxxxx011110,//SRAI.B
       32'b0111101101110xxxxxxxxxxxxx011110,//BINSRI.B
       32'b0111101100xxxxxxxxxxxxxxxx011110,//BINSRI.D
       32'b01111011010xxxxxxxxxxxxxxx011110,//BINSRI.W
       32'b01111001010xxxxxxxxxxxxxxx011110,//SHLI.W
       32'b0111100101110xxxxxxxxxxxxx011110,//SHLI.B
       32'b0111100100xxxxxxxxxxxxxxxx011110,//SHLI.D
       32'b011110010110xxxxxxxxxxxxxx011110://SHLI.H
            fxu_imd_sel_gen[6:0]=i_insn[22:16];
       32'b011110001010xxxxxxxxxxxxxx011010,//MVTG_S.H
       32'b01111000011110xxxxxxxxxxxx011010,//MOVE.D
       32'b01111000010xxxxxxxxxxxxxxx011010,//MOVE.B
       32'b0111100001110xxxxxxxxxxxxx011010,//MOVE.W
       32'b0111100100110xxxxxxxxxxxxx011010,//MVFGE.W
       32'b01111000110xxxxxxxxxxxxxxx011010,//MVTG_U.B
       32'b011110001110xxxxxxxxxxxxxx011010,//MVTG_U.H
       32'b0111100011110xxxxxxxxxxxxx011010,//MVTG_U.W
       32'b0111100010110xxxxxxxxxxxxx011010,//MVTG_S.W
       32'b01111000100xxxxxxxxxxxxxxx011010,//MVTG_S.B
       32'b011110000110xxxxxxxxxxxxxx011010,//MOVE.H
       32'b011110010010xxxxxxxxxxxxxx011010,//MVFGE.H
       32'b01111001000xxxxxxxxxxxxxxx011010://MVFGE.B
            fxu_imd_sel_gen[5:0]=i_insn[21:16];
    endcase
end
endfunction

//============================================================
// build by build_insn_extend
// generate imd sel for xcg
//============================================================
function automatic [6:0] fxu_imd_xcg_sel_gen;
    input [31:0] i_insn;
    begin
    fxu_imd_xcg_sel_gen=0;
    casex(i_insn)
       32'b0111100010111110xxxxxxxxxx011010: begin//CTCMSA
            fxu_imd_xcg_sel_gen[4:0]=i_insn[10:6];//cd
            end
       32'b011110000010xxxxxxxxxxxxxx011010,//SLD.H
       32'b0111100000110xxxxxxxxxxxxx011010,//SLD.W
       32'b01111000000xxxxxxxxxxxxxxx011010,//SLD.B
       32'b01111000001110xxxxxxxxxxxx011010: begin//SLD.D
            fxu_imd_xcg_sel_gen[5:0]=i_insn[21:16];//n
            end
       32'b01000100110xxxxxxxxxx00000000000,//CTC1
       32'b01000100010xxxxxxxxxx00000000000: begin//CFC1
            fxu_imd_xcg_sel_gen[4:0]=i_insn[15:11];//fs
            end
       32'b0111100011111110xxxxxxxxxx011010: begin//CFCMSA
            fxu_imd_xcg_sel_gen[4:0]=i_insn[15:11];//cs
            end
       32'b01000110110xxxxxxxxxxxxx0011xxxx,//C.cond.PS
       32'b01000110000xxxxxxxxxxxxx0011xxxx,//C.cond.S
       32'b01000110001xxxxxxxxxxxxx0011xxxx: begin//C.cond.D
            fxu_imd_xcg_sel_gen[6:4]=i_insn[10:8];//cc
            fxu_imd_xcg_sel_gen[3:0]=i_insn[3:0];//cond
            end
       32'b011110001010xxxxxxxxxxxxxx011010,//MVTG_S.H
       32'b0111100010110xxxxxxxxxxxxx011010,//MVTG_S.W
       32'b0111100100110xxxxxxxxxxxxx011010,//MVFGE.W
       32'b01111000100xxxxxxxxxxxxxxx011010,//MVTG_S.B
       32'b011110010010xxxxxxxxxxxxxx011010,//MVFGE.H
       32'b01111001000xxxxxxxxxxxxxxx011010,//MVFGE.B
       32'b01111000110xxxxxxxxxxxxxxx011010,//MVTG_U.B
       32'b011110001110xxxxxxxxxxxxxx011010,//MVTG_U.H
       32'b0111100011110xxxxxxxxxxxxx011010: begin//MVTG_U.W
            fxu_imd_xcg_sel_gen[3:0]=i_insn[19:16];//n
            end
       32'b000000xxxxxxxx00xxxxx00000000001,//MOVF
       32'b01000110000xxx01xxxxxxxxxx010001,//MOVT.S
       32'b000000xxxxxxxx01xxxxx00000000001,//MOVT
       32'b01000110001xxx01xxxxxxxxxx010001,//MOVT.D
       32'b01000101000xxx01xxxxxxxxxxxxxxxx,//BC1T
       32'b01000101000xxx00xxxxxxxxxxxxxxxx,//BC1F
       32'b01000101000xxx11xxxxxxxxxxxxxxxx,//BC1TL
       32'b01000110000xxx00xxxxxxxxxx010001,//MOVF.S
       32'b01000110001xxx00xxxxxxxxxx010001,//MOVF.D
       32'b01000110110xxx01xxxxxxxxxx010001,//MOVT.PS
       32'b01000110110xxx00xxxxxxxxxx010001,//MOVF.PS
       32'b01000101000xxx10xxxxxxxxxxxxxxxx: begin//BC1FL
            fxu_imd_xcg_sel_gen[2:0]=i_insn[20:18];//cc
            end
    endcase
end
endfunction

//============================================================
// build by build_insn_extend
// generate imd extend
//============================================================


parameter IMD_NOP=0;
parameter IMD_I10_SB=1;
parameter IMD_I10_SD=2;
parameter IMD_I10_SH=3;
parameter IMD_I10_SW=4;
parameter IMD_I5_SB=5;
parameter IMD_I5_SD=6;
parameter IMD_I5_SH=7;
parameter IMD_I5_SW=8;
parameter IMD_I5_UB=9;
parameter IMD_I5_UD=10;
parameter IMD_I5_UH=11;
parameter IMD_I5_UW=12;
parameter IMD_I6_UQ=13;
parameter IMD_I7_UB=14;
parameter IMD_I7_UD=15;
parameter IMD_I7_UH=16;
parameter IMD_I7_UW=17;
parameter IMD_I8_UB=18;
parameter IMD_I8_UQ=19;

function automatic [4:0] fxu_extend_gen;
    input [31:0] i_insn;
    begin

    fxu_extend_gen=IMD_NOP;
    casex(i_insn)
        32'b01111000001xxxxxxxxxxxxxxx000010,//MINI_U.H
        32'b01111000101xxxxxxxxxxxxxxx000001,//SUBSI_U.H
        32'b01111000110xxxxxxxxxxxxxxx000011,//DPADDI_U.W
        32'b01111000010xxxxxxxxxxxxxxx000011,//DPADDI_S.W
        32'b01111010001xxxxxxxxxxxxxxx000010,//MADDVI.H
        32'b01111000101xxxxxxxxxxxxxxx000000,//ADDI_A.H
        32'b01111001001xxxxxxxxxxxxxxx000010,//AVEI_U.H
        32'b01111000001xxxxxxxxxxxxxxx000001,//SUBSI_S.H
        32'b01111001001xxxxxxxxxxxxxxx000000,//ADDSI_A.H
        32'b01111010001xxxxxxxxxxxxxxx000000,//ADDSI_U.H
        32'b01111011101xxxxxxxxxxxxxxx000011,//CLTI_U.H
        32'b01111000001xxxxxxxxxxxxxxx000000,//ADDVI.H
        32'b01111001101xxxxxxxxxxxxxxx000000,//ADDSI_S.H
        32'b01111011110xxxxxxxxxxxxxxx000010,//DOTPI_U.W
        32'b01111010101xxxxxxxxxxxxxxx000000,//SUBVI.H
        32'b01111011001xxxxxxxxxxxxxxx000000,//ASUBI_S.H
        32'b01111001110xxxxxxxxxxxxxxx000011,//DPSUBI_U.W
        32'b01111000001xxxxxxxxxxxxxxx000100,//CLEI_U.H
        32'b01111001010xxxxxxxxxxxxxxx000011,//DPSUBI_S.W
        32'b01111010101xxxxxxxxxxxxxxx000001,//MAXI_U.H
        32'b01111010101xxxxxxxxxxxxxxx000010,//MSUBVI.H
        32'b01111001001xxxxxxxxxxxxxxx000001,//SUBSSI_U.H
        32'b01111011001xxxxxxxxxxxxxxx000001,//MINI_A.H
        32'b01111011101xxxxxxxxxxxxxxx000000,//ASUBI_U.H
        32'b01111001101xxxxxxxxxxxxxxx000001://MAXI_A.H
            fxu_extend_gen=IMD_I5_UH;
        32'b011110001010xxxxxxxxxxxxxx011010,//MVTG_S.H
        32'b01111000011110xxxxxxxxxxxx011010,//MOVE.D
        32'b01111000010xxxxxxxxxxxxxxx011010,//MOVE.B
        32'b0111100001110xxxxxxxxxxxxx011010,//MOVE.W
        32'b0111100100110xxxxxxxxxxxxx011010,//MVFGE.W
        32'b01111000110xxxxxxxxxxxxxxx011010,//MVTG_U.B
        32'b011110001110xxxxxxxxxxxxxx011010,//MVTG_U.H
        32'b0111100011110xxxxxxxxxxxxx011010,//MVTG_U.W
        32'b0111100010110xxxxxxxxxxxxx011010,//MVTG_S.W
        32'b01111000100xxxxxxxxxxxxxxx011010,//MVTG_S.B
        32'b011110000110xxxxxxxxxxxxxx011010,//MOVE.H
        32'b011110010010xxxxxxxxxxxxxx011010,//MVFGE.H
        32'b01111001000xxxxxxxxxxxxxxx011010://MVFGE.B
            fxu_extend_gen=IMD_I6_UQ;
        32'b01111001010xxxxxxxxxxxxxxx001110://LDI.W
            fxu_extend_gen=IMD_I10_SW;
        32'b01111000110xxxxxxxxxxxxxxx011110,//SAT_U.W
        32'b01111000010xxxxxxxxxxxxxxx011110://SAT_S.W
            fxu_extend_gen=IMD_I7_UW;
        32'b01111011110xxxxxxxxxxxxxxx011110,//BCLRI.W
        32'b0111101011110xxxxxxxxxxxxx011110,//BINSLI.B
        32'b0111101010xxxxxxxxxxxxxxxx011110,//BINSLI.D
        32'b011110101110xxxxxxxxxxxxxx011110,//BINSLI.H
        32'b0111101110xxxxxxxxxxxxxxxx011110,//BCLRI.D
        32'b0111100011110xxxxxxxxxxxxx011110,//SAT_U.B
        32'b01111010110xxxxxxxxxxxxxxx011110,//BINSLI.W
        32'b011110111110xxxxxxxxxxxxxx011110,//BCLRI.H
        32'b01111001110xxxxxxxxxxxxxxx011110,//SRAI.W
        32'b011110011110xxxxxxxxxxxxxx011110,//SRAI.H
        32'b0111100110xxxxxxxxxxxxxxxx011110,//SRAI.D
        32'b01111000010xxxxxxxxxxxxxxx011111,//BSETI.W
        32'b011110110110xxxxxxxxxxxxxx011110,//BINSRI.H
        32'b0111100001110xxxxxxxxxxxxx011110,//SAT_S.B
        32'b0111100000xxxxxxxxxxxxxxxx011111,//BSETI.D
        32'b0111100001110xxxxxxxxxxxxx011111,//BSETI.B
        32'b011110000110xxxxxxxxxxxxxx011111,//BSETI.H
        32'b011110100110xxxxxxxxxxxxxx011110,//SRLI.H
        32'b0111101001110xxxxxxxxxxxxx011110,//SRLI.B
        32'b0111101000xxxxxxxxxxxxxxxx011110,//SRLI.D
        32'b01111010010xxxxxxxxxxxxxxx011110,//SRLI.W
        32'b011110001110xxxxxxxxxxxxxx011111,//BNEGI.H
        32'b0111100011110xxxxxxxxxxxxx011111,//BNEGI.B
        32'b0111101111110xxxxxxxxxxxxx011110,//BCLRI.B
        32'b0111100010xxxxxxxxxxxxxxxx011111,//BNEGI.D
        32'b01111000110xxxxxxxxxxxxxxx011111,//BNEGI.W
        32'b0111100111110xxxxxxxxxxxxx011110,//SRAI.B
        32'b0111101101110xxxxxxxxxxxxx011110,//BINSRI.B
        32'b0111101100xxxxxxxxxxxxxxxx011110,//BINSRI.D
        32'b01111011010xxxxxxxxxxxxxxx011110,//BINSRI.W
        32'b01111001010xxxxxxxxxxxxxxx011110,//SHLI.W
        32'b0111100101110xxxxxxxxxxxxx011110,//SHLI.B
        32'b0111100100xxxxxxxxxxxxxxxx011110,//SHLI.D
        32'b011110010110xxxxxxxxxxxxxx011110://SHLI.H
            fxu_extend_gen=IMD_I7_UB;
        32'b01111001xxxxxxxxxxxxxxxxxx001100,//SHF.W
        32'b01111011xxxxxxxxxxxxxxxxxx001011,//SHF.B
        32'b01111000xxxxxxxxxxxxxxxxxx001100://SHF.H
            fxu_extend_gen=IMD_I8_UQ;
        32'b01111011100xxxxxxxxxxxxxxx000001,//MINI_S.B
        32'b01111000100xxxxxxxxxxxxxxx000010,//AVEI_S.B
        32'b01111011001xxxxxxxxxxxxxxx000010,//DOTPI_S.H
        32'b01111001100xxxxxxxxxxxxxxx000010,//MULVI.B
        32'b01111011000xxxxxxxxxxxxxxx000011,//CLEI_S.B
        32'b01111010000xxxxxxxxxxxxxxx000011,//CEQI.B
        32'b01111010000xxxxxxxxxxxxxxx000001,//MAXI_S.B
        32'b01111010100xxxxxxxxxxxxxxx000011://CLTI_S.B
            fxu_extend_gen=IMD_I5_SB;
        32'b0111100000xxxxxxxxxxxxxxxx011110,//SAT_S.D
        32'b0111100010xxxxxxxxxxxxxxxx011110://SAT_U.D
            fxu_extend_gen=IMD_I7_UD;
        32'b01111011110xxxxxxxxxxxxxxx000001,//MINI_S.W
        32'b01111000110xxxxxxxxxxxxxxx000010,//AVEI_S.W
        32'b01111010110xxxxxxxxxxxxxxx000011,//CLTI_S.W
        32'b01111011011xxxxxxxxxxxxxxx000010,//DOTPI_S.D
        32'b01111001110xxxxxxxxxxxxxxx000010,//MULVI.W
        32'b01111011010xxxxxxxxxxxxxxx000011,//CLEI_S.W
        32'b01111010010xxxxxxxxxxxxxxx000001,//MAXI_S.W
        32'b01111010010xxxxxxxxxxxxxxx000011://CEQI.W
            fxu_extend_gen=IMD_I5_SW;
        32'b01111000011xxxxxxxxxxxxxxx000010,//MINI_U.D
        32'b01111000111xxxxxxxxxxxxxxx000001,//SUBSI_U.D
        32'b01111001011xxxxxxxxxxxxxxx000010,//AVEI_U.D
        32'b01111000111xxxxxxxxxxxxxxx000000,//ADDI_A.D
        32'b01111000011xxxxxxxxxxxxxxx000001,//SUBSI_S.D
        32'b01111010011xxxxxxxxxxxxxxx000010,//MADDVI.D
        32'b01111010111xxxxxxxxxxxxxxx000010,//MSUBVI.D
        32'b01111001011xxxxxxxxxxxxxxx000000,//ADDSI_A.D
        32'b01111010011xxxxxxxxxxxxxxx000000,//ADDSI_U.D
        32'b01111011111xxxxxxxxxxxxxxx000011,//CLTI_U.D
        32'b01111000011xxxxxxxxxxxxxxx000000,//ADDVI.D
        32'b01111001111xxxxxxxxxxxxxxx000000,//ADDSI_S.D
        32'b01111010111xxxxxxxxxxxxxxx000000,//SUBVI.D
        32'b01111011011xxxxxxxxxxxxxxx000000,//ASUBI_S.D
        32'b01111000011xxxxxxxxxxxxxxx000100,//CLEI_U.D
        32'b01111010111xxxxxxxxxxxxxxx000001,//MAXI_U.D
        32'b01111001111xxxxxxxxxxxxxxx000001,//MAXI_A.D
        32'b01111001011xxxxxxxxxxxxxxx000001,//SUBSSI_U.D
        32'b01111011111xxxxxxxxxxxxxxx000000,//ASUBI_U.D
        32'b01111011011xxxxxxxxxxxxxxx000001://MINI_A.D
            fxu_extend_gen=IMD_I5_UD;
        32'b01111011111xxxxxxxxxxxxxxx000001,//MINI_S.D
        32'b01111000111xxxxxxxxxxxxxxx000010,//AVEI_S.D
        32'b01111001111xxxxxxxxxxxxxxx000010,//MULVI.D
        32'b01111011011xxxxxxxxxxxxxxx000011,//CLEI_S.D
        32'b01111010011xxxxxxxxxxxxxxx000011,//CEQI.D
        32'b01111010011xxxxxxxxxxxxxxx000001,//MAXI_S.D
        32'b01111010111xxxxxxxxxxxxxxx000011://CLTI_S.D
            fxu_extend_gen=IMD_I5_SD;
        32'b01111011101xxxxxxxxxxxxxxx000001,//MINI_S.H
        32'b01111000101xxxxxxxxxxxxxxx000010,//AVEI_S.H
        32'b01111011001xxxxxxxxxxxxxxx000011,//CLEI_S.H
        32'b01111011010xxxxxxxxxxxxxxx000010,//DOTPI_S.W
        32'b01111001101xxxxxxxxxxxxxxx000010,//MULVI.H
        32'b01111010001xxxxxxxxxxxxxxx000011,//CEQI.H
        32'b01111010001xxxxxxxxxxxxxxx000001,//MAXI_S.H
        32'b01111010101xxxxxxxxxxxxxxx000011://CLTI_S.H
            fxu_extend_gen=IMD_I5_SH;
        32'b01111000100xxxxxxxxxxxxxxx000000,//ADDI_A.B
        32'b01111001000xxxxxxxxxxxxxxx000000,//ADDSI_A.B
        32'b01111001100xxxxxxxxxxxxxxx000000,//ADDSI_S.B
        32'b01111010000xxxxxxxxxxxxxxx000000,//ADDSI_U.B
        32'b01111000000xxxxxxxxxxxxxxx000000,//ADDVI.B
        32'b01111011000xxxxxxxxxxxxxxx000000,//ASUBI_S.B
        32'b01111011100xxxxxxxxxxxxxxx000000,//ASUBI_U.B
        32'b01111001000xxxxxxxxxxxxxxx000010,//AVEI_U.B
        32'b01111000000xxxxxxxxxxxxxxx000100,//CLEI_U.B
        32'b01111011100xxxxxxxxxxxxxxx000011,//CLTI_U.B
        32'b01111011101xxxxxxxxxxxxxxx000010,//DOTPI_U.H
        32'b01111000001xxxxxxxxxxxxxxx000011,//DPADDI_S.H
        32'b01111000101xxxxxxxxxxxxxxx000011,//DPADDI_U.H
        32'b01111001001xxxxxxxxxxxxxxx000011,//DPSUBI_S.H
        32'b01111001101xxxxxxxxxxxxxxx000011,//DPSUBI_U.H
        32'b01111010000xxxxxxxxxxxxxxx000010,//MADDVI.B
        32'b01111001100xxxxxxxxxxxxxxx000001,//MAXI_A.B
        32'b01111010100xxxxxxxxxxxxxxx000001,//MAXI_U.B
        32'b01111011000xxxxxxxxxxxxxxx000001,//MINI_A.B
        32'b01111000000xxxxxxxxxxxxxxx000010,//MINI_U.B
        32'b01111010100xxxxxxxxxxxxxxx000010,//MSUBVI.B
        32'b01111000000xxxxxxxxxxxxxxx000001,//SUBSI_S.B
        32'b01111000100xxxxxxxxxxxxxxx000001,//SUBSI_U.B
        32'b01111001000xxxxxxxxxxxxxxx000001,//SUBSSI_U.B
        32'b01111010100xxxxxxxxxxxxxxx000000://SUBVI.B
            fxu_extend_gen=IMD_I5_UB;
        32'b011110001110xxxxxxxxxxxxxx011110,//SAT_U.H
        32'b011110000110xxxxxxxxxxxxxx011110://SAT_S.H
            fxu_extend_gen=IMD_I7_UH;
        32'b01111001001xxxxxxxxxxxxxxx001110://LDI.H
            fxu_extend_gen=IMD_I10_SH;
        32'b01111000110xxxxxxxxxxxxxxx000001,//SUBSI_U.W
        32'b01111000010xxxxxxxxxxxxxxx000010,//MINI_U.W
        32'b01111000011xxxxxxxxxxxxxxx000011,//DPADDI_S.D
        32'b01111000111xxxxxxxxxxxxxxx000011,//DPADDI_U.D
        32'b01111001010xxxxxxxxxxxxxxx000010,//AVEI_U.W
        32'b01111000110xxxxxxxxxxxxxxx000000,//ADDI_A.W
        32'b01111000010xxxxxxxxxxxxxxx000000,//ADDVI.W
        32'b01111010010xxxxxxxxxxxxxxx000010,//MADDVI.W
        32'b01111001010xxxxxxxxxxxxxxx000000,//ADDSI_A.W
        32'b01111011110xxxxxxxxxxxxxxx000011,//CLTI_U.W
        32'b01111011110xxxxxxxxxxxxxxx000000,//ASUBI_U.W
        32'b01111010010xxxxxxxxxxxxxxx000000,//ADDSI_U.W
        32'b01111000010xxxxxxxxxxxxxxx000001,//SUBSI_S.W
        32'b01111001010xxxxxxxxxxxxxxx000001,//SUBSSI_U.W
        32'b01111010110xxxxxxxxxxxxxxx000010,//MSUBVI.W
        32'b01111011111xxxxxxxxxxxxxxx000010,//DOTPI_U.D
        32'b01111010110xxxxxxxxxxxxxxx000000,//SUBVI.W
        32'b01111011010xxxxxxxxxxxxxxx000000,//ASUBI_S.W
        32'b01111000010xxxxxxxxxxxxxxx000100,//CLEI_U.W
        32'b01111001110xxxxxxxxxxxxxxx000000,//ADDSI_S.W
        32'b01111001011xxxxxxxxxxxxxxx000011,//DPSUBI_S.D
        32'b01111001111xxxxxxxxxxxxxxx000011,//DPSUBI_U.D
        32'b01111010110xxxxxxxxxxxxxxx000001,//MAXI_U.W
        32'b01111001110xxxxxxxxxxxxxxx000001,//MAXI_A.W
        32'b01111011010xxxxxxxxxxxxxxx000001://MINI_A.W
            fxu_extend_gen=IMD_I5_UW;
        32'b01111001011xxxxxxxxxxxxxxx001110://LDI.D
            fxu_extend_gen=IMD_I10_SD;
        32'b01111001000xxxxxxxxxxxxxxx001110://LDI.B
            fxu_extend_gen=IMD_I10_SB;
        32'b01111000xxxxxxxxxxxxxxxxxx001011,//BMNZI.B
        32'b01111011xxxxxxxxxxxxxxxxxx001010,//XORI.B
        32'b01111001xxxxxxxxxxxxxxxxxx001010,//ORI.B
        32'b01111000xxxxxxxxxxxxxxxxxx001010,//ANDI.B
        32'b01111010xxxxxxxxxxxxxxxxxx001010,//NORI.B
        32'b01111001xxxxxxxxxxxxxxxxxx001011,//BMZI.B
        32'b01111010xxxxxxxxxxxxxxxxxx001011://BSELI.B
            fxu_extend_gen=IMD_I8_UB;
    endcase
    end
endfunction

//============================================================
// build by build_insn_extend
// generate imd extend for xcg
//============================================================
function automatic  fxu_extend_xcg_gen;
    input [31:0] i_insn;
    begin

    fxu_extend_xcg_gen=0;
    casex(i_insn)
        32'b01000110110xxxxxxxxxxxxx0011xxxx,//C.cond.PS
        32'b01000110000xxxxxxxxxxxxx0011xxxx,//C.cond.S
        32'b0111100010111110xxxxxxxxxx011010,//CTCMSA
        32'b000000xxxxxxxx00xxxxx00000000001,//MOVF
        32'b01000110000xxx01xxxxxxxxxx010001,//MOVT.S
        32'b011110001010xxxxxxxxxxxxxx011010,//MVTG_S.H
        32'b01000110001xxxxxxxxxxxxx0011xxxx,//C.cond.D
        32'b000000xxxxxxxx01xxxxx00000000001,//MOVT
        32'b0111100010110xxxxxxxxxxxxx011010,//MVTG_S.W
        32'b01000110001xxx01xxxxxxxxxx010001,//MOVT.D
        32'b011110000010xxxxxxxxxxxxxx011010,//SLD.H
        32'b01000101000xxx01xxxxxxxxxxxxxxxx,//BC1T
        32'b0111100100110xxxxxxxxxxxxx011010,//MVFGE.W
        32'b01111000100xxxxxxxxxxxxxxx011010,//MVTG_S.B
        32'b011110010010xxxxxxxxxxxxxx011010,//MVFGE.H
        32'b01000100110xxxxxxxxxx00000000000,//CTC1
        32'b01000101000xxx00xxxxxxxxxxxxxxxx,//BC1F
        32'b01111001000xxxxxxxxxxxxxxx011010,//MVFGE.B
        32'b01000101000xxx11xxxxxxxxxxxxxxxx,//BC1TL
        32'b01000110000xxx00xxxxxxxxxx010001,//MOVF.S
        32'b0111100011111110xxxxxxxxxx011010,//CFCMSA
        32'b01000110001xxx00xxxxxxxxxx010001,//MOVF.D
        32'b01111000110xxxxxxxxxxxxxxx011010,//MVTG_U.B
        32'b011110001110xxxxxxxxxxxxxx011010,//MVTG_U.H
        32'b0111100000110xxxxxxxxxxxxx011010,//SLD.W
        32'b01000110110xxx01xxxxxxxxxx010001,//MOVT.PS
        32'b0111100011110xxxxxxxxxxxxx011010,//MVTG_U.W
        32'b01000110110xxx00xxxxxxxxxx010001,//MOVF.PS
        32'b01111000000xxxxxxxxxxxxxxx011010,//SLD.B
        32'b01111000001110xxxxxxxxxxxx011010,//SLD.D
        32'b01000101000xxx10xxxxxxxxxxxxxxxx,//BC1FL
        32'b01000100010xxxxxxxxxx00000000000://CFC1
            fxu_extend_xcg_gen=1;
    endcase
    end
endfunction

//============================================================
// build by build_insn_extend
// generate imd extend value
//============================================================
function automatic [TQ-1:0] fxu_extend_value_gen;
    input [4:0] i_imd_sel   ; 
    input [9:0] i_imd_value ; 
    reg [TQ-1:0] r;
    reg [TB-1:0] b;
    reg [TH-1:0] h;
    reg [TW-1:0] w;
    reg [TD-1:0] d;
    reg [TQ-1:0] q;
    begin
    r=0;
    case(i_imd_sel)
        IMD_I10_SB:
            begin
            b=i_imd_value[7:0];
            r={16{b}};
            end
        IMD_I10_SD:
            begin
            d={{54{i_imd_value[9]}},i_imd_value[9:0]};
            r={2{d}};
            end
        IMD_I10_SH:
            begin
            h={{6{i_imd_value[9]}},i_imd_value[9:0]};
            r={8{h}};
            end
        IMD_I10_SW:
            begin
            w={{22{i_imd_value[9]}},i_imd_value[9:0]};
            r={4{w}};
            end
        IMD_I5_SB:
            begin
            b={{3{i_imd_value[4]}},i_imd_value[4:0]};
            r={16{b}};
            end
        IMD_I5_SD:
            begin
            d={{59{i_imd_value[4]}},i_imd_value[4:0]};
            r={2{d}};
            end
        IMD_I5_SH:
            begin
            h={{11{i_imd_value[4]}},i_imd_value[4:0]};
            r={8{h}};
            end
        IMD_I5_SW:
            begin
            w={{27{i_imd_value[4]}},i_imd_value[4:0]};
            r={4{w}};
            end
        IMD_I5_UB:
            begin
            b={3'b0,i_imd_value[4:0]};
            r={16{b}};
            end
        IMD_I5_UD:
            begin
            d={59'b0,i_imd_value[4:0]};
            r={2{d}};
            end
        IMD_I5_UH:
            begin
            h={11'b0,i_imd_value[4:0]};
            r={8{h}};
            end
        IMD_I5_UW:
            begin
            w={27'b0,i_imd_value[4:0]};
            r={4{w}};
            end
        IMD_I6_UQ:
            begin
            q={122'b0,i_imd_value[5:0]};
            r=q;
            end
        IMD_I7_UB:
            begin
            b={1'b0,i_imd_value[6:0]};
            r={16{b}};
            end
        IMD_I7_UD:
            begin
            d={57'b0,i_imd_value[6:0]};
            r={2{d}};
            end
        IMD_I7_UH:
            begin
            h={9'b0,i_imd_value[6:0]};
            r={8{h}};
            end
        IMD_I7_UW:
            begin
            w={25'b0,i_imd_value[6:0]};
            r={4{w}};
            end
        IMD_I8_UB:
            begin
            b=i_imd_value[7:0];
            r={16{b}};
            end
        IMD_I8_UQ:
            begin
            q={120'b0,i_imd_value[7:0]};
            r=q;
            end
    endcase

    fxu_extend_value_gen=r;
    end
    endfunction
//============================================================
// build by build_insn_ucode
// decode ucode gen
//============================================================
function automatic [11:0] fxu_ucode_decode_gen;
    input [31:0] i_insn;
    reg [11:0] r;
    begin
        r=12'bx;
        casex(i_insn)
            32'b0100011000100000xxxxxxxxxx000100:r[ 3:0]=`JZ4785_UELF_SQRT_D   ;//SQRT.D
            32'b01000110000xxxxxxxxxxxxxxx000011:r[ 3:0]=`JZ4785_UELF_DIV_S    ;//DIV.S
            32'b01111010011xxxxxxxxxxxxxxx011011:r[ 3:0]=`JZ4785_UELF_FDIV_D   ;//FDIV.D
            32'b01111010010xxxxxxxxxxxxxxx011011:r[ 3:0]=`JZ4785_UELF_FDIV_W   ;//FDIV.W
            32'b0100011000000000xxxxxxxxxx000100:r[ 3:0]=`JZ4785_UELF_SQRT_S   ;//SQRT.S
            32'b0100011000000000xxxxxxxxxx010101:r[ 3:0]=`JZ4785_UELF_RECIP_S  ;//RECIP.S
            32'b0111101111000000xxxxxxxxxx001111:r[ 3:0]=`JZ4785_UELF_FSQRT_W  ;//FSQRT.W
            32'b0111101111000001xxxxxxxxxx001111:r[ 3:0]=`JZ4785_UELF_FSQRT_D  ;//FSQRT.D
            32'b0100011000000000xxxxxxxxxx010110:r[ 3:0]=`JZ4785_UELF_RSQRT_S  ;//RSQRT.S
            32'b0100011000100000xxxxxxxxxx010110:r[ 3:0]=`JZ4785_UELF_RSQRT_D  ;//RSQRT.D
            32'b0100011000100000xxxxxxxxxx010101:r[ 3:0]=`JZ4785_UELF_RECIP_D  ;//RECIP.D
            32'b01000110001xxxxxxxxxxxxxxx000011:r[ 3:0]=`JZ4785_UELF_DIV_D    ;//DIV.D
            32'b01111000110xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMUL_DPADD_U_W;//DPADD_U.W
            32'b01111000101xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMUL_DPADD_U_H;//DPADD_U.H
            32'b01111000111xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMUL_DPADD_U_D;//DPADD_U.D
            32'b01111001110xxxxxxxxxxxxxxx010010:r[11:0]=`JZ4785_UMUL_MULV_W   ;//MULV.W
            32'b01111001111xxxxxxxxxxxxxxx010010:r[11:0]=`JZ4785_UMUL_MULV_D   ;//MULV.D
            32'b01111001010xxxxxxxxxxxxxxx011011:r[11:0]=`JZ4785_UMUL_MSUBR_Q_H;//MSUBR_Q.H
            32'b01111001101xxxxxxxxxxxxxxx010010:r[11:0]=`JZ4785_UMUL_MULV_H   ;//MULV.H
            32'b01111001110xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMUL_DPSUB_U_W;//DPSUB_U.W
            32'b01111000001xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMUL_DPADD_S_H;//DPADD_S.H
            32'b01111000011xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMUL_DPADD_S_D;//DPADD_S.D
            32'b01111000010xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMUL_DPADD_S_W;//DPADD_S.W
            32'b01111001111xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMUL_DPSUB_U_D;//DPSUB_U.D
            32'b01111000101xxxxxxxxxxxxxxx011011:r[11:0]=`JZ4785_UMUL_MADD_Q_W ;//MADD_Q.W
            32'b01111001100xxxxxxxxxxxxxxx000010:r[11:0]=`JZ4785_UMUL_MULV_B   ;//MULVI.B
            32'b01111001111xxxxxxxxxxxxxxx000010:r[11:0]=`JZ4785_UMUL_MULV_D   ;//MULVI.D
            32'b01111001101xxxxxxxxxxxxxxx000010:r[11:0]=`JZ4785_UMUL_MULV_H   ;//MULVI.H
            32'b01111001110xxxxxxxxxxxxxxx000010:r[11:0]=`JZ4785_UMUL_MULV_W   ;//MULVI.W
            32'b01111001001xxxxxxxxxxxxxxx000011:r[11:0]=`JZ4785_UMUL_DPSUB_S_H;//DPSUBI_S.H
            32'b01111010000xxxxxxxxxxxxxxx011011:r[11:0]=`JZ4785_UMUL_FMUL_W   ;//FMUL.W
            32'b01111001110xxxxxxxxxxxxxxx000011:r[11:0]=`JZ4785_UMUL_DPSUB_U_W;//DPSUBI_U.W
            32'b01111001011xxxxxxxxxxxxxxx000011:r[11:0]=`JZ4785_UMUL_DPSUB_S_D;//DPSUBI_S.D
            32'b01111010001xxxxxxxxxxxxxxx011011:r[11:0]=`JZ4785_UMUL_FMUL_D   ;//FMUL.D
            32'b01111001101xxxxxxxxxxxxxxx000011:r[11:0]=`JZ4785_UMUL_DPSUB_U_H;//DPSUBI_U.H
            32'b01111001111xxxxxxxxxxxxxxx000011:r[11:0]=`JZ4785_UMUL_DPSUB_U_D;//DPSUBI_U.D
            32'b01111001010xxxxxxxxxxxxxxx000011:r[11:0]=`JZ4785_UMUL_DPSUB_S_W;//DPSUBI_S.W
            32'b010011xxxxxxxxxxxxxxxxxxxx101110:r[11:0]=`JZ4785_UMUL_MSUB_PS  ;//MSUB.PS
            32'b01111001010xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMUL_DPSUB_S_W;//DPSUB_S.W
            32'b01111001001xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMUL_DPSUB_S_H;//DPSUB_S.H
            32'b01111001011xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMUL_DPSUB_S_D;//DPSUB_S.D
            32'b01111001011xxxxxxxxxxxxxxx011011:r[11:0]=`JZ4785_UMUL_MSUBR_Q_W;//MSUBR_Q.W
            32'b01111010110xxxxxxxxxxxxxxx000010:r[11:0]=`JZ4785_UMUL_MSUBV_W  ;//MSUBVI.W
            32'b01111010111xxxxxxxxxxxxxxx000010:r[11:0]=`JZ4785_UMUL_MSUBV_D  ;//MSUBVI.D
            32'b01111010100xxxxxxxxxxxxxxx000010:r[11:0]=`JZ4785_UMUL_MSUBV_B  ;//MSUBVI.B
            32'b01111010101xxxxxxxxxxxxxxx000010:r[11:0]=`JZ4785_UMUL_MSUBV_H  ;//MSUBVI.H
            32'b01111010010xxxxxxxxxxxxxxx000010:r[11:0]=`JZ4785_UMUL_MADDV_W  ;//MADDVI.W
            32'b01111001100xxxxxxxxxxxxxxx010010:r[11:0]=`JZ4785_UMUL_MULV_B   ;//MULV.B
            32'b01111001101xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMUL_DPSUB_U_H;//DPSUB_U.H
            32'b01111010110xxxxxxxxxxxxxxx011011:r[11:0]=`JZ4785_UMUL_FMADD_W  ;//FMADD.W
            32'b010011xxxxxxxxxxxxxxxxxxxx111110:r[11:0]=`JZ4785_UMUL_NMSUB_PS ;//NMSUB.PS
            32'b01111010111xxxxxxxxxxxxxxx011011:r[11:0]=`JZ4785_UMUL_FMADD_D  ;//FMADD.D
            32'b01111010011xxxxxxxxxxxxxxx000010:r[11:0]=`JZ4785_UMUL_MADDV_D  ;//MADDVI.D
            32'b01000110001xxxxxxxxxxxxxxx000010:r[11:0]=`JZ4785_UMUL_MUL_D    ;//MUL.D
            32'b010011xxxxxxxxxxxxxxxxxxxx101001:r[11:0]=`JZ4785_UMUL_MSUB_D   ;//MSUB.D
            32'b01000110000xxxxxxxxxxxxxxx000010:r[11:0]=`JZ4785_UMUL_MUL_S    ;//MUL.S
            32'b010011xxxxxxxxxxxxxxxxxxxx101000:r[11:0]=`JZ4785_UMUL_MSUB_S   ;//MSUB.S
            32'b01111000111xxxxxxxxxxxxxxx011011:r[11:0]=`JZ4785_UMUL_MADDR_Q_W;//MADDR_Q.W
            32'b01111000110xxxxxxxxxxxxxxx011011:r[11:0]=`JZ4785_UMUL_MADDR_Q_H;//MADDR_Q.H
            32'b01111010001xxxxxxxxxxxxxxx000010:r[11:0]=`JZ4785_UMUL_MADDV_H  ;//MADDVI.H
            32'b01111000001xxxxxxxxxxxxxxx011011:r[11:0]=`JZ4785_UMUL_MUL_Q_W  ;//MUL_Q.W
            32'b01111010000xxxxxxxxxxxxxxx000010:r[11:0]=`JZ4785_UMUL_MADDV_B  ;//MADDVI.B
            32'b01111000000xxxxxxxxxxxxxxx011011:r[11:0]=`JZ4785_UMUL_MUL_Q_H  ;//MUL_Q.H
            32'b010011xxxxxxxxxxxxxxxxxxxx110000:r[11:0]=`JZ4785_UMUL_NMADD_S  ;//NMADD.S
            32'b010011xxxxxxxxxxxxxxxxxxxx110001:r[11:0]=`JZ4785_UMUL_NMADD_D  ;//NMADD.D
            32'b01111011000xxxxxxxxxxxxxxx011011:r[11:0]=`JZ4785_UMUL_FMSUB_W  ;//FMSUB.W
            32'b01111011001xxxxxxxxxxxxxxx011011:r[11:0]=`JZ4785_UMUL_FMSUB_D  ;//FMSUB.D
            32'b01111010000xxxxxxxxxxxxxxx010010:r[11:0]=`JZ4785_UMUL_MADDV_B  ;//MADDV.B
            32'b01111010011xxxxxxxxxxxxxxx010010:r[11:0]=`JZ4785_UMUL_MADDV_D  ;//MADDV.D
            32'b01111010001xxxxxxxxxxxxxxx010010:r[11:0]=`JZ4785_UMUL_MADDV_H  ;//MADDV.H
            32'b01111010010xxxxxxxxxxxxxxx010010:r[11:0]=`JZ4785_UMUL_MADDV_W  ;//MADDV.W
            32'b01111011010xxxxxxxxxxxxxxx010010:r[11:0]=`JZ4785_UMUL_DOTP_S_W ;//DOTP_S.W
            32'b01111011011xxxxxxxxxxxxxxx010010:r[11:0]=`JZ4785_UMUL_DOTP_S_D ;//DOTP_S.D
            32'b01111011001xxxxxxxxxxxxxxx010010:r[11:0]=`JZ4785_UMUL_DOTP_S_H ;//DOTP_S.H
            32'b01111011111xxxxxxxxxxxxxxx010010:r[11:0]=`JZ4785_UMUL_DOTP_U_D ;//DOTP_U.D
            32'b01111011101xxxxxxxxxxxxxxx010010:r[11:0]=`JZ4785_UMUL_DOTP_U_H ;//DOTP_U.H
            32'b01111011110xxxxxxxxxxxxxxx010010:r[11:0]=`JZ4785_UMUL_DOTP_U_W ;//DOTP_U.W
            32'b010011xxxxxxxxxxxxxxxxxxxx110110:r[11:0]=`JZ4785_UMUL_NMADD_PS ;//NMADD.PS
            32'b01111000100xxxxxxxxxxxxxxx011011:r[11:0]=`JZ4785_UMUL_MADD_Q_H ;//MADD_Q.H
            32'b01111000001xxxxxxxxxxxxxxx000011:r[11:0]=`JZ4785_UMUL_DPADD_S_H;//DPADDI_S.H
            32'b01111000110xxxxxxxxxxxxxxx000011:r[11:0]=`JZ4785_UMUL_DPADD_U_W;//DPADDI_U.W
            32'b01111000011xxxxxxxxxxxxxxx000011:r[11:0]=`JZ4785_UMUL_DPADD_S_D;//DPADDI_S.D
            32'b01111000111xxxxxxxxxxxxxxx000011:r[11:0]=`JZ4785_UMUL_DPADD_U_D;//DPADDI_U.D
            32'b01111000101xxxxxxxxxxxxxxx000011:r[11:0]=`JZ4785_UMUL_DPADD_U_H;//DPADDI_U.H
            32'b01111000010xxxxxxxxxxxxxxx000011:r[11:0]=`JZ4785_UMUL_DPADD_S_W;//DPADDI_S.W
            32'b010011xxxxxxxxxxxxxxxxxxxx100110:r[11:0]=`JZ4785_UMUL_MADD_PS  ;//MADD.PS
            32'b010011xxxxxxxxxxxxxxxxxxxx111001:r[11:0]=`JZ4785_UMUL_NMSUB_D  ;//NMSUB.D
            32'b01111000011xxxxxxxxxxxxxxx011011:r[11:0]=`JZ4785_UMUL_MULR_Q_W ;//MULR_Q.W
            32'b010011xxxxxxxxxxxxxxxxxxxx111000:r[11:0]=`JZ4785_UMUL_NMSUB_S  ;//NMSUB.S
            32'b01111000010xxxxxxxxxxxxxxx011011:r[11:0]=`JZ4785_UMUL_MULR_Q_H ;//MULR_Q.H
            32'b01111011110xxxxxxxxxxxxxxx000010:r[11:0]=`JZ4785_UMUL_DOTP_U_W ;//DOTPI_U.W
            32'b01111011101xxxxxxxxxxxxxxx000010:r[11:0]=`JZ4785_UMUL_DOTP_U_H ;//DOTPI_U.H
            32'b01111011111xxxxxxxxxxxxxxx000010:r[11:0]=`JZ4785_UMUL_DOTP_U_D ;//DOTPI_U.D
            32'b01111001001xxxxxxxxxxxxxxx011011:r[11:0]=`JZ4785_UMUL_MSUB_Q_W ;//MSUB_Q.W
            32'b01111011011xxxxxxxxxxxxxxx000010:r[11:0]=`JZ4785_UMUL_DOTP_S_D ;//DOTPI_S.D
            32'b01111011001xxxxxxxxxxxxxxx000010:r[11:0]=`JZ4785_UMUL_DOTP_S_H ;//DOTPI_S.H
            32'b01111011010xxxxxxxxxxxxxxx000010:r[11:0]=`JZ4785_UMUL_DOTP_S_W ;//DOTPI_S.W
            32'b01111001000xxxxxxxxxxxxxxx011011:r[11:0]=`JZ4785_UMUL_MSUB_Q_H ;//MSUB_Q.H
            32'b010011xxxxxxxxxxxxxxxxxxxx100000:r[11:0]=`JZ4785_UMUL_MADD_S   ;//MADD.S
            32'b010011xxxxxxxxxxxxxxxxxxxx100001:r[11:0]=`JZ4785_UMUL_MADD_D   ;//MADD.D
            32'b01111010101xxxxxxxxxxxxxxx010010:r[11:0]=`JZ4785_UMUL_MSUBV_H  ;//MSUBV.H
            32'b01000110110xxxxxxxxxxxxxxx000010:r[11:0]=`JZ4785_UMUL_MUL_PS   ;//MUL.PS
            32'b01111010110xxxxxxxxxxxxxxx010010:r[11:0]=`JZ4785_UMUL_MSUBV_W  ;//MSUBV.W
            32'b01111010111xxxxxxxxxxxxxxx010010:r[11:0]=`JZ4785_UMUL_MSUBV_D  ;//MSUBV.D
            32'b01111010100xxxxxxxxxxxxxxx010010:r[11:0]=`JZ4785_UMUL_MSUBV_B  ;//MSUBV.B
            32'b01111000001xxxxxxxxxxxxxxx000010:r[10:0]=`JZ4785_UADD_MIN_U_H  ;//MINI_U.H
            32'b01111000000xxxxxxxxxxxxxxx000010:r[10:0]=`JZ4785_UADD_MIN_U_B  ;//MINI_U.B
            32'b01111011110xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_MIN_S_W  ;//MINI_S.W
            32'b01111000011xxxxxxxxxxxxxxx000010:r[10:0]=`JZ4785_UADD_MIN_U_D  ;//MINI_U.D
            32'b01111011101xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_MIN_S_H  ;//MINI_S.H
            32'b01111011111xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_MIN_S_D  ;//MINI_S.D
            32'b01111000010xxxxxxxxxxxxxxx000010:r[10:0]=`JZ4785_UADD_MIN_U_W  ;//MINI_U.W
            32'b01111011100xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_MIN_S_B  ;//MINI_S.B
            32'b01000110001xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_SUB_D    ;//SUB.D
            32'b01111001011xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADDS_A_D ;//ADDSI_A.D
            32'b01111001001xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADDS_A_H ;//ADDSI_A.H
            32'b01111011110xxxxxxxxxxxxxxx011011:r[10:0]=`JZ4785_UADD_FMAX_A_W ;//FMAX_A.W
            32'b01111001101xxxxxxxxxxxxxxx011011:r[10:0]=`JZ4785_UADD_FADD_D   ;//FADD.D
            32'b01111000010xxxxxxxxxxxxxxx010010:r[10:0]=`JZ4785_UADD_MIN_U_W  ;//MIN_U.W
            32'b01111000001xxxxxxxxxxxxxxx010010:r[10:0]=`JZ4785_UADD_MIN_U_H  ;//MIN_U.H
            32'b01111001100xxxxxxxxxxxxxxx011011:r[10:0]=`JZ4785_UADD_FADD_W   ;//FADD.W
            32'b01111011111xxxxxxxxxxxxxxx011011:r[10:0]=`JZ4785_UADD_FMAX_A_D ;//FMAX_A.D
            32'b01111000000xxxxxxxxxxxxxxx010010:r[10:0]=`JZ4785_UADD_MIN_U_B  ;//MIN_U.B
            32'b01111000011xxxxxxxxxxxxxxx010010:r[10:0]=`JZ4785_UADD_MIN_U_D  ;//MIN_U.D
            32'b01111010001xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ADDS_U_H ;//ADDS_U.H
            32'b01111010000xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ADDS_U_B ;//ADDS_U.B
            32'b01111010011xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ADDS_U_D ;//ADDS_U.D
            32'b01111010010xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ADDS_U_W ;//ADDS_U.W
            32'b01111000111xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ADD_A_D  ;//ADD_A.D
            32'b01111000000xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADDV_B   ;//ADDVI.B
            32'b01111000011xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADDV_D   ;//ADDVI.D
            32'b01111010100xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_SUBV_B   ;//SUBV.B
            32'b01111010111xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_SUBV_D   ;//SUBV.D
            32'b01111010101xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_SUBV_H   ;//SUBV.H
            32'b01111010110xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_SUBV_W   ;//SUBV.W
            32'b01111000010xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_SUBS_S_W ;//SUBSI_S.W
            32'b01111000000xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_SUBS_S_B ;//SUBSI_S.B
            32'b01111000011xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_SUBS_S_D ;//SUBSI_S.D
            32'b01000110110xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADD_PS   ;//ADD.PS
            32'b01111011111xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ASUB_U_D ;//ASUB_U.D
            32'b01111011100xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ASUB_U_B ;//ASUBI_U.B
            32'b01111001010xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_SUBSS_U_W;//SUBSSI_U.W
            32'b01111011010xxxxxxxxxxxxxxx010100:r[10:0]=`JZ4785_UADD_CLE_S_W  ;//CLE_S.W
            32'b01111001011xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_SUBSS_U_D;//SUBSSI_U.D
            32'b01111011001xxxxxxxxxxxxxxx010100:r[10:0]=`JZ4785_UADD_CLE_S_H  ;//CLE_S.H
            32'b01111001000xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_SUBSS_U_B;//SUBSSI_U.B
            32'b01111011011xxxxxxxxxxxxxxx010100:r[10:0]=`JZ4785_UADD_CLE_S_D  ;//CLE_S.D
            32'b01111001001xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_SUBSS_U_H;//SUBSSI_U.H
            32'b01111011000xxxxxxxxxxxxxxx010100:r[10:0]=`JZ4785_UADD_CLE_S_B  ;//CLE_S.B
            32'b01111000100xxxxxxxxxxxxxxx000010:r[10:0]=`JZ4785_UADD_AVE_S_B  ;//AVEI_S.B
            32'b01111011110xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ASUB_U_W ;//ASUB_U.W
            32'b01111001011xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ADDS_A_D ;//ADDS_A.D
            32'b01111001000xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ADDS_A_B ;//ADDS_A.B
            32'b01111000111xxxxxxxxxxxxxxx000010:r[10:0]=`JZ4785_UADD_AVE_S_D  ;//AVEI_S.D
            32'b01111001001xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ADDS_A_H ;//ADDS_A.H
            32'b01111001010xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ADDS_A_W ;//ADDS_A.W
            32'b01111001111xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ADDS_S_D ;//ADDS_S.D
            32'b01111001100xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ADDS_S_B ;//ADDS_S.B
            32'b01111011010xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_MIN_A_W  ;//MINI_A.W
            32'b01111001101xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ADDS_S_H ;//ADDS_S.H
            32'b01111001110xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ADDS_S_W ;//ADDS_S.W
            32'b01111011001xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_MIN_A_H  ;//MINI_A.H
            32'b01111011011xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_MIN_A_D  ;//MINI_A.D
            32'b01111011000xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_MIN_A_B  ;//MINI_A.B
            32'b01111000101xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_SUBS_U_H ;//SUBSI_U.H
            32'b01111000101xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_SUBS_U_H ;//SUBS_U.H
            32'b01111000111xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_SUBS_U_D ;//SUBSI_U.D
            32'b01111000111xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_SUBS_U_D ;//SUBS_U.D
            32'b01111000100xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_SUBS_U_B ;//SUBS_U.B
            32'b01111000100xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_SUBS_U_B ;//SUBSI_U.B
            32'b01111000110xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_SUBS_U_W ;//SUBS_U.W
            32'b01111000110xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_SUBS_U_W ;//SUBSI_U.W
            32'b01111000110xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADD_A_W  ;//ADDI_A.W
            32'b01111000010xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_SUBS_S_W ;//SUBS_S.W
            32'b01111000001xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_SUBS_S_H ;//SUBS_S.H
            32'b01111000000xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_SUBS_S_B ;//SUBS_S.B
            32'b01111000011xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_SUBS_S_D ;//SUBS_S.D
            32'b01111001000xxxxxxxxxxxxxxx011100:r[10:0]=`JZ4785_UADD_FCLE_W   ;//FCLE.W
            32'b01111001001xxxxxxxxxxxxxxx011100:r[10:0]=`JZ4785_UADD_FCLE_D   ;//FCLE.D
            32'b01111010101xxxxxxxxxxxxxxx010100:r[10:0]=`JZ4785_UADD_CLT_S_H  ;//CLT_S.H
            32'b01111001011xxxxxxxxxxxxxxx000010:r[10:0]=`JZ4785_UADD_AVE_U_D  ;//AVEI_U.D
            32'b01111001000xxxxxxxxxxxxxxx000010:r[10:0]=`JZ4785_UADD_AVE_U_B  ;//AVEI_U.B
            32'b01111010100xxxxxxxxxxxxxxx010100:r[10:0]=`JZ4785_UADD_CLT_S_B  ;//CLT_S.B
            32'b01111000001xxxxxxxxxxxxxxx010101:r[10:0]=`JZ4785_UADD_CLE_U_H  ;//CLE_U.H
            32'b01111010111xxxxxxxxxxxxxxx010100:r[10:0]=`JZ4785_UADD_CLT_S_D  ;//CLT_S.D
            32'b01111001001xxxxxxxxxxxxxxx000010:r[10:0]=`JZ4785_UADD_AVE_U_H  ;//AVEI_U.H
            32'b01111001010xxxxxxxxxxxxxxx000010:r[10:0]=`JZ4785_UADD_AVE_U_W  ;//AVEI_U.W
            32'b01111000010xxxxxxxxxxxxxxx010101:r[10:0]=`JZ4785_UADD_CLE_U_W  ;//CLE_U.W
            32'b01111010110xxxxxxxxxxxxxxx010100:r[10:0]=`JZ4785_UADD_CLT_S_W  ;//CLT_S.W
            32'b01111001010xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADDS_A_W ;//ADDSI_A.W
            32'b01111011110xxxxxxxxxxxxxxx010100:r[10:0]=`JZ4785_UADD_CLT_U_W  ;//CLT_U.W
            32'b01111001000xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADDS_A_B ;//ADDSI_A.B
            32'b01111011101xxxxxxxxxxxxxxx010100:r[10:0]=`JZ4785_UADD_CLT_U_H  ;//CLT_U.H
            32'b01111011111xxxxxxxxxxxxxxx010100:r[10:0]=`JZ4785_UADD_CLT_U_D  ;//CLT_U.D
            32'b01111011100xxxxxxxxxxxxxxx010100:r[10:0]=`JZ4785_UADD_CLT_U_B  ;//CLT_U.B
            32'b01111010011xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADDS_U_D ;//ADDSI_U.D
            32'b01111010000xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADDS_U_B ;//ADDSI_U.B
            32'b01111010001xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADDS_U_H ;//ADDSI_U.H
            32'b01111010010xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADDS_U_W ;//ADDSI_U.W
            32'b01111011100xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ASUB_U_B ;//ASUB_U.B
            32'b01111011010xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ASUB_S_W ;//ASUB_S.W
            32'b01111000110xxxxxxxxxxxxxxx000010:r[10:0]=`JZ4785_UADD_AVE_S_W  ;//AVEI_S.W
            32'b01111001110xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADDS_S_W ;//ADDSI_S.W
            32'b01111011101xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ASUB_U_H ;//ASUB_U.H
            32'b01111011011xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ASUB_S_D ;//ASUB_S.D
            32'b01111001100xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADDS_S_B ;//ADDSI_S.B
            32'b01111001111xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADDS_S_D ;//ADDSI_S.D
            32'b01111011000xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ASUB_S_B ;//ASUB_S.B
            32'b01111001101xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADDS_S_H ;//ADDSI_S.H
            32'b01111000101xxxxxxxxxxxxxxx000010:r[10:0]=`JZ4785_UADD_AVE_S_H  ;//AVEI_S.H
            32'b01111011001xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ASUB_S_H ;//ASUB_S.H
            32'b01111000011xxxxxxxxxxxxxxx011100:r[10:0]=`JZ4785_UADD_FMIN_A_D ;//FMIN_A.D
            32'b01111000101xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADD_A_H  ;//ADDI_A.H
            32'b01111000010xxxxxxxxxxxxxxx011100:r[10:0]=`JZ4785_UADD_FMIN_A_W ;//FMIN_A.W
            32'b01111000011xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ADDV_D   ;//ADDV.D
            32'b01111000000xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ADDV_B   ;//ADDV.B
            32'b01111000001xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ADDV_H   ;//ADDV.H
            32'b01111000010xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ADDV_W   ;//ADDV.W
            32'b01111011000xxxxxxxxxxxxxxx000011:r[10:0]=`JZ4785_UADD_CLE_S_B  ;//CLEI_S.B
            32'b01111000010xxxxxxxxxxxxxxx000100:r[10:0]=`JZ4785_UADD_CLE_U_W  ;//CLEI_U.W
            32'b01111011011xxxxxxxxxxxxxxx000011:r[10:0]=`JZ4785_UADD_CLE_S_D  ;//CLEI_S.D
            32'b01111011001xxxxxxxxxxxxxxx000011:r[10:0]=`JZ4785_UADD_CLE_S_H  ;//CLEI_S.H
            32'b01111000011xxxxxxxxxxxxxxx000100:r[10:0]=`JZ4785_UADD_CLE_U_D  ;//CLEI_U.D
            32'b01111011010xxxxxxxxxxxxxxx000011:r[10:0]=`JZ4785_UADD_CLE_S_W  ;//CLEI_S.W
            32'b01111000000xxxxxxxxxxxxxxx000100:r[10:0]=`JZ4785_UADD_CLE_U_B  ;//CLEI_U.B
            32'b01111000001xxxxxxxxxxxxxxx000100:r[10:0]=`JZ4785_UADD_CLE_U_H  ;//CLEI_U.H
            32'b01111010000xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_MAX_S_B  ;//MAXI_S.B
            32'b01111010110xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_MAX_U_W  ;//MAXI_U.W
            32'b01111010011xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_MAX_S_D  ;//MAXI_S.D
            32'b01111010001xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_MAX_S_H  ;//MAXI_S.H
            32'b01111010111xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_MAX_U_D  ;//MAXI_U.D
            32'b01111010010xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_MAX_S_W  ;//MAXI_S.W
            32'b01111010100xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_MAX_U_B  ;//MAXI_U.B
            32'b01111010101xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_MAX_U_H  ;//MAXI_U.H
            32'b01111001100xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_MAX_A_B  ;//MAXI_A.B
            32'b01111001111xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_MAX_A_D  ;//MAXI_A.D
            32'b01111001101xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_MAX_A_H  ;//MAXI_A.H
            32'b01111001110xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_MAX_A_W  ;//MAXI_A.W
            32'b01111000100xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ADD_A_B  ;//ADD_A.B
            32'b01111000101xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ADD_A_H  ;//ADD_A.H
            32'b01111000110xxxxxxxxxxxxxxx010000:r[10:0]=`JZ4785_UADD_ADD_A_W  ;//ADD_A.W
            32'b01111000100xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADD_A_B  ;//ADDI_A.B
            32'b01111000111xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADD_A_D  ;//ADDI_A.D
            32'b01111001100xxxxxxxxxxxxxxx011100:r[10:0]=`JZ4785_UADD_FCEQU_W  ;//FCEQU.W
            32'b01111011100xxxxxxxxxxxxxxx011011:r[10:0]=`JZ4785_UADD_FMAX_W   ;//FMAX.W
            32'b01111000010xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADDV_W   ;//ADDVI.W
            32'b01111011101xxxxxxxxxxxxxxx011011:r[10:0]=`JZ4785_UADD_FMAX_D   ;//FMAX.D
            32'b01111001101xxxxxxxxxxxxxxx011100:r[10:0]=`JZ4785_UADD_FCEQU_D  ;//FCEQU.D
            32'b01111011100xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_MIN_S_B  ;//MIN_S.B
            32'b01111010010xxxxxxxxxxxxxxx010100:r[10:0]=`JZ4785_UADD_CEQ_W    ;//CEQ.W
            32'b01111001111xxxxxxxxxxxxxxx011011:r[10:0]=`JZ4785_UADD_FSUB_D   ;//FSUB.D
            32'b01111010011xxxxxxxxxxxxxxx010100:r[10:0]=`JZ4785_UADD_CEQ_D    ;//CEQ.D
            32'b01111010000xxxxxxxxxxxxxxx010100:r[10:0]=`JZ4785_UADD_CEQ_B    ;//CEQ.B
            32'b01111010011xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_MAX_S_D  ;//MAX_S.D
            32'b01111001110xxxxxxxxxxxxxxx011011:r[10:0]=`JZ4785_UADD_FSUB_W   ;//FSUB.W
            32'b01111010001xxxxxxxxxxxxxxx010100:r[10:0]=`JZ4785_UADD_CEQ_H    ;//CEQ.H
            32'b01111011101xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_MIN_S_H  ;//MIN_S.H
            32'b01111010111xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_SUBV_D   ;//SUBVI.D
            32'b01111000001xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADDV_H   ;//ADDVI.H
            32'b01111010100xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_SUBV_B   ;//SUBVI.B
            32'b01111000101xxxxxxxxxxxxxxx011100:r[10:0]=`JZ4785_UADD_FCEQ_D   ;//FCEQ.D
            32'b01111010101xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_SUBV_H   ;//SUBVI.H
            32'b01111010110xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_SUBV_W   ;//SUBVI.W
            32'b01111000100xxxxxxxxxxxxxxx011100:r[10:0]=`JZ4785_UADD_FCEQ_W   ;//FCEQ.W
            32'b01111001110xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_MAX_A_W  ;//MAX_A.W
            32'b01111001011xxxxxxxxxxxxxxx011100:r[10:0]=`JZ4785_UADD_FCUN_D   ;//FCUN.D
            32'b01111001101xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_MAX_A_H  ;//MAX_A.H
            32'b01111001111xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_MAX_A_D  ;//MAX_A.D
            32'b01111001100xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_MAX_A_B  ;//MAX_A.B
            32'b01111001010xxxxxxxxxxxxxxx011100:r[10:0]=`JZ4785_UADD_FCUN_W   ;//FCUN.W
            32'b01111000110xxxxxxxxxxxxxxx011100:r[10:0]=`JZ4785_UADD_FCLT_W   ;//FCLT.W
            32'b01111000111xxxxxxxxxxxxxxx011100:r[10:0]=`JZ4785_UADD_FCLT_D   ;//FCLT.D
            32'b01000110000xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADD_S    ;//ADD.S
            32'b01111010001xxxxxxxxxxxxxxx011100:r[10:0]=`JZ4785_UADD_FCLEU_D  ;//FCLEU.D
            32'b01000110001xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ADD_D    ;//ADD.D
            32'b01111010000xxxxxxxxxxxxxxx011100:r[10:0]=`JZ4785_UADD_FCLEU_W  ;//FCLEU.W
            32'b01111000001xxxxxxxxxxxxxxx011100:r[10:0]=`JZ4785_UADD_FMIN_D   ;//FMIN.D
            32'b01111000000xxxxxxxxxxxxxxx011100:r[10:0]=`JZ4785_UADD_FMIN_W   ;//FMIN.W
            32'b01111000001xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_SUBS_S_H ;//SUBSI_S.H
            32'b01111011110xxxxxxxxxxxxxxx000011:r[10:0]=`JZ4785_UADD_CLT_U_W  ;//CLTI_U.W
            32'b01111011100xxxxxxxxxxxxxxx000011:r[10:0]=`JZ4785_UADD_CLT_U_B  ;//CLTI_U.B
            32'b01111010100xxxxxxxxxxxxxxx000011:r[10:0]=`JZ4785_UADD_CLT_S_B  ;//CLTI_S.B
            32'b01111011111xxxxxxxxxxxxxxx000011:r[10:0]=`JZ4785_UADD_CLT_U_D  ;//CLTI_U.D
            32'b01111011101xxxxxxxxxxxxxxx000011:r[10:0]=`JZ4785_UADD_CLT_U_H  ;//CLTI_U.H
            32'b01111010100xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_MAX_U_B  ;//MAX_U.B
            32'b01111010111xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_MAX_U_D  ;//MAX_U.D
            32'b01111010101xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_MAX_U_H  ;//MAX_U.H
            32'b01111001010xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_SUBSS_U_W;//SUBSS_U.W
            32'b01111001001xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_SUBSS_U_H;//SUBSS_U.H
            32'b01111010110xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_MAX_U_W  ;//MAX_U.W
            32'b01111001000xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_SUBSS_U_B;//SUBSS_U.B
            32'b01111001011xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_SUBSS_U_D;//SUBSS_U.D
            32'b01111000000xxxxxxxxxxxxxxx010101:r[10:0]=`JZ4785_UADD_CLE_U_B  ;//CLE_U.B
            32'b01111000011xxxxxxxxxxxxxxx010101:r[10:0]=`JZ4785_UADD_CLE_U_D  ;//CLE_U.D
            32'b01111011010xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ASUB_S_W ;//ASUBI_S.W
            32'b01111011011xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ASUB_S_D ;//ASUBI_S.D
            32'b01111011000xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ASUB_S_B ;//ASUBI_S.B
            32'b01111011001xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ASUB_S_H ;//ASUBI_S.H
            32'b01111011110xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_MIN_S_W  ;//MIN_S.W
            32'b01000110000xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_SUB_S    ;//SUB.S
            32'b01111010010xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_MAX_S_W  ;//MAX_S.W
            32'b01111001111xxxxxxxxxxxxxxx011100:r[10:0]=`JZ4785_UADD_FCLTU_D  ;//FCLTU.D
            32'b01111011111xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_MIN_S_D  ;//MIN_S.D
            32'b01111010001xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_MAX_S_H  ;//MAX_S.H
            32'b01000110110xxxxxxxxxxxxxxx000001:r[10:0]=`JZ4785_UADD_SUB_PS   ;//SUB.PS
            32'b01111001110xxxxxxxxxxxxxxx011100:r[10:0]=`JZ4785_UADD_FCLTU_W  ;//FCLTU.W
            32'b01111010000xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_MAX_S_B  ;//MAX_S.B
            32'b01111010000xxxxxxxxxxxxxxx000011:r[10:0]=`JZ4785_UADD_CEQ_B    ;//CEQI.B
            32'b01111011010xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_MIN_A_W  ;//MIN_A.W
            32'b01111010011xxxxxxxxxxxxxxx000011:r[10:0]=`JZ4785_UADD_CEQ_D    ;//CEQI.D
            32'b01111010001xxxxxxxxxxxxxxx000011:r[10:0]=`JZ4785_UADD_CEQ_H    ;//CEQI.H
            32'b01111011011xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_MIN_A_D  ;//MIN_A.D
            32'b01111010010xxxxxxxxxxxxxxx000011:r[10:0]=`JZ4785_UADD_CEQ_W    ;//CEQI.W
            32'b01111011000xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_MIN_A_B  ;//MIN_A.B
            32'b01111011001xxxxxxxxxxxxxxx010001:r[10:0]=`JZ4785_UADD_MIN_A_H  ;//MIN_A.H
            32'b01111010101xxxxxxxxxxxxxxx000011:r[10:0]=`JZ4785_UADD_CLT_S_H  ;//CLTI_S.H
            32'b01111000101xxxxxxxxxxxxxxx010010:r[10:0]=`JZ4785_UADD_AVE_S_H  ;//AVE_S.H
            32'b01111010111xxxxxxxxxxxxxxx000011:r[10:0]=`JZ4785_UADD_CLT_S_D  ;//CLTI_S.D
            32'b01111000111xxxxxxxxxxxxxxx010010:r[10:0]=`JZ4785_UADD_AVE_S_D  ;//AVE_S.D
            32'b01111011110xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ASUB_U_W ;//ASUBI_U.W
            32'b01111000100xxxxxxxxxxxxxxx010010:r[10:0]=`JZ4785_UADD_AVE_S_B  ;//AVE_S.B
            32'b01111011101xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ASUB_U_H ;//ASUBI_U.H
            32'b01111000110xxxxxxxxxxxxxxx010010:r[10:0]=`JZ4785_UADD_AVE_S_W  ;//AVE_S.W
            32'b01111010110xxxxxxxxxxxxxxx000011:r[10:0]=`JZ4785_UADD_CLT_S_W  ;//CLTI_S.W
            32'b01111011111xxxxxxxxxxxxxxx000000:r[10:0]=`JZ4785_UADD_ASUB_U_D ;//ASUBI_U.D
            32'b01111001010xxxxxxxxxxxxxxx010010:r[10:0]=`JZ4785_UADD_AVE_U_W  ;//AVE_U.W
            32'b01111001000xxxxxxxxxxxxxxx010010:r[10:0]=`JZ4785_UADD_AVE_U_B  ;//AVE_U.B
            32'b01111001011xxxxxxxxxxxxxxx010010:r[10:0]=`JZ4785_UADD_AVE_U_D  ;//AVE_U.D
            32'b01111001001xxxxxxxxxxxxxxx010010:r[10:0]=`JZ4785_UADD_AVE_U_H  ;//AVE_U.H
            32'b01111001001xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_PCKEV_H  ;//PCKEV.H
            32'b01111011110xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMSC_BINSL_W  ;//BINSL.W
            32'b01111001000xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_PCKEV_B  ;//PCKEV.B
            32'b01111011101xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMSC_BINSL_H  ;//BINSL.H
            32'b01111011111xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMSC_BINSL_D  ;//BINSL.D
            32'b01111011100xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMSC_BINSL_B  ;//BINSL.B
            32'b0100011000100000xxxxxxxxxx100100:r[11:0]=`JZ4785_UMSC_CVT_W_D  ;//CVT.W.D
            32'b01111000111xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_VSHF_D   ;//VSHF.D
            32'b01111000100xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_VSHF_B   ;//VSHF.B
            32'b01111000110xxxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_SAT_U_W  ;//SAT_U.W
            32'b01111000101xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_VSHF_H   ;//VSHF.H
            32'b01111000110xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_VSHF_W   ;//VSHF.W
            32'b0111100011110xxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_SAT_U_B  ;//SAT_U.B
            32'b0111100010xxxxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_SAT_U_D  ;//SAT_U.D
            32'b0100011000000000xxxxxxxxxx100100:r[11:0]=`JZ4785_UMSC_CVT_W_S  ;//CVT.W.S
            32'b011110001110xxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_SAT_U_H  ;//SAT_U.H
            32'b01111001011xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_PCKEV_D  ;//PCKEV.D
            32'b0111101110000110xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_PCNT_W   ;//PCNT.W
            32'b0100011000100000xxxxxxxxxx001100:r[11:0]=`JZ4785_UMSC_ROUND_W_D;//ROUND.W.D
            32'b011110011110xxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_SRA_H    ;//SRAI.H
            32'b0111101110000100xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_PCNT_B   ;//PCNT.B
            32'b0111101110000111xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_PCNT_D   ;//PCNT.D
            32'b0100011000000000xxxxxxxxxx001100:r[11:0]=`JZ4785_UMSC_ROUND_W_S;//ROUND.W.S
            32'b0111100111110xxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_SRA_B    ;//SRAI.B
            32'b01111011xxxxxxxxxxxxxxxxxx001010:r[11:0]=`JZ4785_UMSC_XOR_B    ;//XORI.B
            32'b0100011000100000xxxxxxxxxx001010:r[11:0]=`JZ4785_UMSC_CEIL_L_D ;//CEIL.L.D
            32'b0111101111010101xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FEXUPL_D ;//FEXUPL.D
            32'b0111101111010100xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FEXUPL_W ;//FEXUPL.W
            32'b01111001010xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_PCKEV_W  ;//PCKEV.W
            32'b0111101111010010xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FFQR_W   ;//FFQR.W
            32'b01111011000xxxxxxxxxxxxxxx000111:r[11:0]=`JZ4785_UMSC_S3IL2_B  ;//S3IL2.B
            32'b0111101111010001xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FFQL_D   ;//FFQL.D
            32'b0111101111010011xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FFQR_D   ;//FFQR.D
            32'b0111101111010000xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FFQL_W   ;//FFQL.W
            32'b01111000110xxxxxxxxxxxxxxx000111:r[11:0]=`JZ4785_UMSC_S3IR1_W  ;//S3IR1.W
            32'b011110000110xxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_SAT_S_H  ;//SAT_S.H
            32'b0111101111000110xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FCLASS_W ;//FCLASS.W
            32'b0111100001110xxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_SAT_S_B  ;//SAT_S.B
            32'b01111000100xxxxxxxxxxxxxxx000111:r[11:0]=`JZ4785_UMSC_S3IR1_B  ;//S3IR1.B
            32'b0111101111000111xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FCLASS_D ;//FCLASS.D
            32'b01111000101xxxxxxxxxxxxxxx000111:r[11:0]=`JZ4785_UMSC_S3IR1_H  ;//S3IR1.H
            32'b0100011000000000xxxxxxxxxx001000:r[11:0]=`JZ4785_UMSC_ROUND_L_S;//ROUND.L.S
            32'b0111101000xxxxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_SRL_D    ;//SRLI.D
            32'b01111010010xxxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_SRL_W    ;//SRLI.W
            32'b01111011001xxxxxxxxxxxxxxx000101:r[11:0]=`JZ4785_UMSC_SE3L2_H  ;//SE3L2.H
            32'b01111000001xxxxxxxxxxxxxxx010100:r[11:0]=`JZ4785_UMSC_BINSR_H  ;//BINSR.H
            32'b01111001011xxxxxxxxxxxxxxx010100:r[11:0]=`JZ4785_UMSC_BSET_D   ;//BSET.D
            32'b01111011000xxxxxxxxxxxxxxx000101:r[11:0]=`JZ4785_UMSC_SE3L2_B  ;//SE3L2.B
            32'b01111000000xxxxxxxxxxxxxxx010100:r[11:0]=`JZ4785_UMSC_BINSR_B  ;//BINSR.B
            32'b01111000011xxxxxxxxxxxxxxx010100:r[11:0]=`JZ4785_UMSC_BINSR_D  ;//BINSR.D
            32'b01111001001xxxxxxxxxxxxxxx010100:r[11:0]=`JZ4785_UMSC_BSET_H   ;//BSET.H
            32'b01111000010xxxxxxxxxxxxxxx010100:r[11:0]=`JZ4785_UMSC_BINSR_W  ;//BINSR.W
            32'b01111011010xxxxxxxxxxxxxxx000101:r[11:0]=`JZ4785_UMSC_SE3L2_W  ;//SE3L2.W
            32'b0111101110xxxxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_BCLR_D   ;//BCLRI.D
            32'b01111001110xxxxxxxxxxxxxxx010100:r[11:0]=`JZ4785_UMSC_BNEG_W   ;//BNEG.W
            32'b0111101111010110xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FEXUPR_W ;//FEXUPR.W
            32'b0111100010xxxxxxxxxxxxxxxx011111:r[11:0]=`JZ4785_UMSC_BNEG_D   ;//BNEGI.D
            32'b0111101111110xxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_BCLR_B   ;//BCLRI.B
            32'b0100011000100000xxxxxxxxxx001101:r[11:0]=`JZ4785_UMSC_TRUNC_W_D;//TRUNC.W.D
            32'b0111101111010111xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FEXUPR_D ;//FEXUPR.D
            32'b0100011000000000xxxxxxxxxx001101:r[11:0]=`JZ4785_UMSC_TRUNC_W_S;//TRUNC.W.S
            32'b01111000011xxxxxxxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_XOR_B    ;//XOR.V
            32'b01000110110xxxxxxxxxxxxxxx101101:r[11:0]=`JZ4785_UMSC_PLU_PS   ;//PLU.PS
            32'b01111000000xxxxxxxxxxxxxxx000101:r[11:0]=`JZ4785_UMSC_SE3R0_B  ;//SE3R0.B
            32'b0100011000000000xxxxxxxxxx001011:r[11:0]=`JZ4785_UMSC_FLOOR_L_S;//FLOOR.L.S
            32'b01111000010xxxxxxxxxxxxxxx000101:r[11:0]=`JZ4785_UMSC_SE3R0_W  ;//SE3R0.W
            32'b0100011000100000xxxxxxxxxx001011:r[11:0]=`JZ4785_UMSC_FLOOR_L_D;//FLOOR.L.D
            32'b01111000110xxxxxxxxxxxxxxx011111:r[11:0]=`JZ4785_UMSC_BNEG_W   ;//BNEGI.W
            32'b01111010010xxxxxxxxxxxxxxx000101:r[11:0]=`JZ4785_UMSC_SE3L0_W  ;//SE3L0.W
            32'b01111010001xxxxxxxxxxxxxxx000101:r[11:0]=`JZ4785_UMSC_SE3L0_H  ;//SE3L0.H
            32'b01111001110xxxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_SRA_W    ;//SRAI.W
            32'b01111001xxxxxxxxxxxxxxxxxx001011:r[11:0]=`JZ4785_UMSC_BMZ_B    ;//BMZI.B
            32'b01111010000xxxxxxxxxxxxxxx000101:r[11:0]=`JZ4785_UMSC_SE3L0_B  ;//SE3L0.B
            32'b01111010100xxxxxxxxxxxxxxx000111:r[11:0]=`JZ4785_UMSC_S3IL1_B  ;//S3IL1.B
            32'b01111010101xxxxxxxxxxxxxxx000111:r[11:0]=`JZ4785_UMSC_S3IL1_H  ;//S3IL1.H
            32'b0111101111000011xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FRINT_D  ;//FRINT.D
            32'b0111101110000101xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_PCNT_H   ;//PCNT.H
            32'b0111101111000010xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FRINT_W  ;//FRINT.W
            32'b01111010101xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMSC_SRA_H    ;//SRA.H
            32'b0111100110xxxxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_SRA_D    ;//SRAI.D
            32'b01111001010xxxxxxxxxxxxxxx000101:r[11:0]=`JZ4785_UMSC_SE3R2_W  ;//SE3R2.W
            32'b011110000110xxxxxxxxxxxxxx011010:r[11:0]=`JZ4785_UMSC_MOVE_H   ;//MOVE.H
            32'b01111000011110xxxxxxxxxxxx011010:r[11:0]=`JZ4785_UMSC_MOVE_D   ;//MOVE.D
            32'b01111000010xxxxxxxxxxxxxxx011010:r[11:0]=`JZ4785_UMSC_MOVE_B   ;//MOVE.B
            32'b01111001000xxxxxxxxxxxxxxx000101:r[11:0]=`JZ4785_UMSC_SE3R2_B  ;//SE3R2.B
            32'b0111100001110xxxxxxxxxxxxx011010:r[11:0]=`JZ4785_UMSC_MOVE_W   ;//MOVE.W
            32'b0111100001111110xxxxxxxxxx011010:r[11:0]=`JZ4785_UMSC_MOVE_V   ;//MOVE.V
            32'b01111001001xxxxxxxxxxxxxxx000101:r[11:0]=`JZ4785_UMSC_SE3R2_H  ;//SE3R2.H
            32'b01111010000xxxxxxxxxxxxxxx000111:r[11:0]=`JZ4785_UMSC_S3IL0_B  ;//S3IL0.B
            32'b0111101110001101xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_NLZC_H   ;//NLZC.H
            32'b01111000100xxxxxxxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_BMNZ_B   ;//BMNZ.V
            32'b0111101110001010xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_NLOC_W   ;//NLOC.W
            32'b0111101110001000xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_NLOC_B   ;//NLOC.B
            32'b0111101110001011xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_NLOC_D   ;//NLOC.D
            32'b0111101110001001xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_NLOC_H   ;//NLOC.H
            32'b0100011000000000xxxxxxxxxx001010:r[11:0]=`JZ4785_UMSC_CEIL_L_S ;//CEIL.L.S
            32'b0100011000000000xxxxxxxxxx001001:r[11:0]=`JZ4785_UMSC_TRUNC_L_S;//TRUNC.L.S
            32'b01111011010xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMSC_SRL_W    ;//SRL.W
            32'b0111101110001110xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_NLZC_W   ;//NLZC.W
            32'b0100011000100000xxxxxxxxxx001001:r[11:0]=`JZ4785_UMSC_TRUNC_L_D;//TRUNC.L.D
            32'b01111011001xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMSC_SRL_H    ;//SRL.H
            32'b0111101110001100xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_NLZC_B   ;//NLZC.B
            32'b01111011011xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMSC_SRL_D    ;//SRL.D
            32'b01111011000xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMSC_SRL_B    ;//SRL.B
            32'b0111101110001111xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_NLZC_D   ;//NLZC.D
            32'b01111010010xxxxxxxxxxxxxxx011100:r[11:0]=`JZ4785_UMSC_FTQ_H    ;//FTQ.H
            32'b01000110000xxxxxxxxxxxxxxx100110:r[11:0]=`JZ4785_UMSC_CVT_PS_S ;//CVT.PS.S
            32'b0111101101110xxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_BINSR_B  ;//BINSRI.B
            32'b01111010010xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_ILVL_W   ;//ILVL.W
            32'b01111010101xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_ILVR_H   ;//ILVR.H
            32'b0111101100xxxxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_BINSR_D  ;//BINSRI.D
            32'b01111010100xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_ILVR_B   ;//ILVR.B
            32'b011110110110xxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_BINSR_H  ;//BINSRI.H
            32'b01111010111xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_ILVR_D   ;//ILVR.D
            32'b01111010011xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_ILVL_D   ;//ILVL.D
            32'b01111011010xxxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_BINSR_W  ;//BINSRI.W
            32'b01111010000xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_ILVL_B   ;//ILVL.B
            32'b01111010110xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_ILVR_W   ;//ILVR.W
            32'b01111010001xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_ILVL_H   ;//ILVL.H
            32'b01111001101xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_PCKOD_H  ;//PCKOD.H
            32'b01111001111xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_PCKOD_D  ;//PCKOD.D
            32'b01111010xxxxxxxxxxxxxxxxxx001011:r[11:0]=`JZ4785_UMSC_BSEL_B   ;//BSELI.B
            32'b01111001110xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_PCKOD_W  ;//PCKOD.W
            32'b0100011000100000xxxxxxxxxx001110:r[11:0]=`JZ4785_UMSC_CEIL_W_D ;//CEIL.W.D
            32'b01111000101xxxxxxxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_BMZ_B    ;//BMZ.V
            32'b0100011000000000xxxxxxxxxx001110:r[11:0]=`JZ4785_UMSC_CEIL_W_S ;//CEIL.W.S
            32'b0100011011000000xxxxxxxxxx000110:r[11:0]=`JZ4785_UMSC_MOV_PS   ;//MOV.PS
            32'b01111011110xxxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_BCLR_W   ;//BCLRI.W
            32'b0100011000100000xxxxxxxxxx001000:r[11:0]=`JZ4785_UMSC_ROUND_L_D;//ROUND.L.D
            32'b011110111110xxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_BCLR_H   ;//BCLRI.H
            32'b01111010110xxxxxxxxxxxxxxx000111:r[11:0]=`JZ4785_UMSC_S3IL1_W  ;//S3IL1.W
            32'b01000110110xxxxxxxxxxxxxxx101110:r[11:0]=`JZ4785_UMSC_PUL_PS   ;//PUL.PS
            32'b01111000010xxxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_SAT_S_W  ;//SAT_S.W
            32'b01111010011xxxxxxxxxxxxxxx011100:r[11:0]=`JZ4785_UMSC_FTQ_W    ;//FTQ.W
            32'b0100011000100000xxxxxxxxxx000110:r[11:0]=`JZ4785_UMSC_MOV_D    ;//MOV.D
            32'b0100011000000000xxxxxxxxxx000110:r[11:0]=`JZ4785_UMSC_MOV_S    ;//MOV.S
            32'b01111010100xxxxxxxxxxxxxxx000101:r[11:0]=`JZ4785_UMSC_SE3L1_B  ;//SE3L1.B
            32'b0111101111001000xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FTINT_S_W;//FTINT_S.W
            32'b01111010110xxxxxxxxxxxxxxx000101:r[11:0]=`JZ4785_UMSC_SE3L1_W  ;//SE3L1.W
            32'b01111001xxxxxxxxxxxxxxxxxx001010:r[11:0]=`JZ4785_UMSC_OR_B     ;//ORI.B
            32'b0111101111001001xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FTINT_S_D;//FTINT_S.D
            32'b01000110110xxxxxxxxxxxxxxx101111:r[11:0]=`JZ4785_UMSC_PUU_PS   ;//PUU.PS
            32'b01111001xxxxxxxxxxxxxxxxxx001100:r[11:0]=`JZ4785_UMSC_SHF_W    ;//SHF.W
            32'b01111000110xxxxxxxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_BSEL_B   ;//BSEL.V
            32'b01111011xxxxxxxxxxxxxxxxxx001011:r[11:0]=`JZ4785_UMSC_SHF_B    ;//SHF.B
            32'b01111000xxxxxxxxxxxxxxxxxx001100:r[11:0]=`JZ4785_UMSC_SHF_H    ;//SHF.H
            32'b0111100000xxxxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_SAT_S_D  ;//SAT_S.D
            32'b0100011000100000xxxxxxxxxx100101:r[11:0]=`JZ4785_UMSC_CVT_L_D  ;//CVT.L.D
            32'b0100011000000000xxxxxxxxxx100101:r[11:0]=`JZ4785_UMSC_CVT_L_S  ;//CVT.L.S
            32'b01000110110xxxxxxxxxxxxxxx101100:r[11:0]=`JZ4785_UMSC_PLL_PS   ;//PLL.PS
            32'b01111000010xxxxxxxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_NOR_B    ;//NOR.V
            32'b0111101111001010xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FFINT_S_W;//FFINT_S.W
            32'b0111101111001101xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FTINT_U_D;//FTINT_U.D
            32'b01111001000xxxxxxxxxxxxxxx000111:r[11:0]=`JZ4785_UMSC_S3IR2_B  ;//S3IR2.B
            32'b01111010100xxxxxxxxxxxxxxx011100:r[11:0]=`JZ4785_UMSC_FEXDO_H  ;//FEXDO.H
            32'b01111001001xxxxxxxxxxxxxxx000111:r[11:0]=`JZ4785_UMSC_S3IR2_H  ;//S3IR2.H
            32'b0111101111001100xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FTINT_U_W;//FTINT_U.W
            32'b01111010101xxxxxxxxxxxxxxx011100:r[11:0]=`JZ4785_UMSC_FEXDO_W  ;//FEXDO.W
            32'b01111011110xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_ILVOD_W  ;//ILVOD.W
            32'b01111011100xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_ILVOD_B  ;//ILVOD.B
            32'b01111011111xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_ILVOD_D  ;//ILVOD.D
            32'b01111011101xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_ILVOD_H  ;//ILVOD.H
            32'b01111001010xxxxxxxxxxxxxxx001110:r[11:0]=`JZ4785_UMSC_LDI_W    ;//LDI.W
            32'b01111000xxxxxxxxxxxxxxxxxx001010:r[11:0]=`JZ4785_UMSC_AND_B    ;//ANDI.B
            32'b01111001001xxxxxxxxxxxxxxx001110:r[11:0]=`JZ4785_UMSC_LDI_H    ;//LDI.H
            32'b01111001000xxxxxxxxxxxxxxx001110:r[11:0]=`JZ4785_UMSC_LDI_B    ;//LDI.B
            32'b01111001011xxxxxxxxxxxxxxx001110:r[11:0]=`JZ4785_UMSC_LDI_D    ;//LDI.D
            32'b01111000010xxxxxxxxxxxxxxx000111:r[11:0]=`JZ4785_UMSC_S3IR0_W  ;//S3IR0.W
            32'b0111101111001011xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FFINT_S_D;//FFINT_S.D
            32'b01111001000xxxxxxxxxxxxxxx010100:r[11:0]=`JZ4785_UMSC_BSET_B   ;//BSET.B
            32'b011110100110xxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_SRL_H    ;//SRLI.H
            32'b01111000000xxxxxxxxxxxxxxx000111:r[11:0]=`JZ4785_UMSC_S3IR0_B  ;//S3IR0.B
            32'b01111000001xxxxxxxxxxxxxxx000111:r[11:0]=`JZ4785_UMSC_S3IR0_H  ;//S3IR0.H
            32'b0111101001110xxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_SRL_B    ;//SRLI.B
            32'b0100011010100000xxxxxxxxxx100000:r[11:0]=`JZ4785_UMSC_CVT_S_L  ;//CVT.S.L
            32'b011110001110xxxxxxxxxxxxxx011111:r[11:0]=`JZ4785_UMSC_BNEG_H   ;//BNEGI.H
            32'b0111100011110xxxxxxxxxxxxx011111:r[11:0]=`JZ4785_UMSC_BNEG_B   ;//BNEGI.B
            32'b0100011011000000xxxxxxxxxx000101:r[11:0]=`JZ4785_UMSC_ABS_PS   ;//ABS.PS
            32'b01111001101xxxxxxxxxxxxxxx010100:r[11:0]=`JZ4785_UMSC_BNEG_H   ;//BNEG.H
            32'b0100011011000000xxxxxxxxxx000111:r[11:0]=`JZ4785_UMSC_NEG_PS   ;//NEG.PS
            32'b01111001111xxxxxxxxxxxxxxx010100:r[11:0]=`JZ4785_UMSC_BNEG_D   ;//BNEG.D
            32'b01111001100xxxxxxxxxxxxxxx010100:r[11:0]=`JZ4785_UMSC_BNEG_B   ;//BNEG.B
            32'b01111001010xxxxxxxxxxxxxxx000111:r[11:0]=`JZ4785_UMSC_S3IR2_W  ;//S3IR2.W
            32'b01111000001xxxxxxxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_OR_B     ;//OR.V
            32'b0100011000100000xxxxxxxxxx100000:r[11:0]=`JZ4785_UMSC_CVT_S_D  ;//CVT.S.D
            32'b01111000001xxxxxxxxxxxxxxx000101:r[11:0]=`JZ4785_UMSC_SE3R0_H  ;//SE3R0.H
            32'b01111001010xxxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_SHL_W    ;//SHLI.W
            32'b0100011000000000xxxxxxxxxx100001:r[11:0]=`JZ4785_UMSC_CVT_D_S  ;//CVT.D.S
            32'b0100011010000000xxxxxxxxxx100001:r[11:0]=`JZ4785_UMSC_CVT_D_W  ;//CVT.D.W
            32'b0111100101110xxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_SHL_B    ;//SHLI.B
            32'b0111100100xxxxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_SHL_D    ;//SHLI.D
            32'b0100011010100000xxxxxxxxxx100001:r[11:0]=`JZ4785_UMSC_CVT_D_L  ;//CVT.D.L
            32'b011110010110xxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_SHL_H    ;//SHLI.H
            32'b01111000100xxxxxxxxxxxxxxx000101:r[11:0]=`JZ4785_UMSC_SE3R1_B  ;//SE3R1.B
            32'b01111000xxxxxxxxxxxxxxxxxx001011:r[11:0]=`JZ4785_UMSC_BMNZ_B   ;//BMNZI.B
            32'b0111101011110xxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_BINSL_B  ;//BINSLI.B
            32'b0111101010xxxxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_BINSL_D  ;//BINSLI.D
            32'b011110101110xxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_BINSL_H  ;//BINSLI.H
            32'b01111010110xxxxxxxxxxxxxxx011110:r[11:0]=`JZ4785_UMSC_BINSL_W  ;//BINSLI.W
            32'b01111000101xxxxxxxxxxxxxxx000101:r[11:0]=`JZ4785_UMSC_SE3R1_H  ;//SE3R1.H
            32'b01111010010xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMSC_SHL_W    ;//SHL.W
            32'b01111010001xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMSC_SHL_H    ;//SHL.H
            32'b01111010011xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMSC_SHL_D    ;//SHL.D
            32'b0100011000100000xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FLOOR_W_D;//FLOOR.W.D
            32'b01111010000xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMSC_SHL_B    ;//SHL.B
            32'b0100011011000000xxxxxxxxxx101000:r[11:0]=`JZ4785_UMSC_CVT_S_PL ;//CVT.S.PL
            32'b01111011010xxxxxxxxxxxxxxx000111:r[11:0]=`JZ4785_UMSC_S3IL2_W  ;//S3IL2.W
            32'b01111011001xxxxxxxxxxxxxxx000111:r[11:0]=`JZ4785_UMSC_S3IL2_H  ;//S3IL2.H
            32'b0100011000000000xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FLOOR_W_S;//FLOOR.W.S
            32'b0100011011000000xxxxxxxxxx100000:r[11:0]=`JZ4785_UMSC_CVT_S_PU ;//CVT.S.PU
            32'b01111000110xxxxxxxxxxxxxxx000101:r[11:0]=`JZ4785_UMSC_SE3R1_W  ;//SE3R1.W
            32'b01111000110xxxxxxxxxxxxxxx010100:r[11:0]=`JZ4785_UMSC_BCLR_W   ;//BCLR.W
            32'b01111000101xxxxxxxxxxxxxxx010100:r[11:0]=`JZ4785_UMSC_BCLR_H   ;//BCLR.H
            32'b01111000100xxxxxxxxxxxxxxx010100:r[11:0]=`JZ4785_UMSC_BCLR_B   ;//BCLR.B
            32'b01111000111xxxxxxxxxxxxxxx010100:r[11:0]=`JZ4785_UMSC_BCLR_D   ;//BCLR.D
            32'b0111101111001111xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FFINT_U_D;//FFINT_U.D
            32'b01111000010xxxxxxxxxxxxxxx011111:r[11:0]=`JZ4785_UMSC_BSET_W   ;//BSETI.W
            32'b01111011010xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_ILVEV_W  ;//ILVEV.W
            32'b01111001010xxxxxxxxxxxxxxx010100:r[11:0]=`JZ4785_UMSC_BSET_W   ;//BSET.W
            32'b0111100000xxxxxxxxxxxxxxxx011111:r[11:0]=`JZ4785_UMSC_BSET_D   ;//BSETI.D
            32'b0111101111001110xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FFINT_U_W;//FFINT_U.W
            32'b0111100001110xxxxxxxxxxxxx011111:r[11:0]=`JZ4785_UMSC_BSET_B   ;//BSETI.B
            32'b01111011001xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_ILVEV_H  ;//ILVEV.H
            32'b01111011011xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_ILVEV_D  ;//ILVEV.D
            32'b01111011000xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_ILVEV_B  ;//ILVEV.B
            32'b011110000110xxxxxxxxxxxxxx011111:r[11:0]=`JZ4785_UMSC_BSET_H   ;//BSETI.H
            32'b0111101111000101xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FLOG2_D  ;//FLOG2.D
            32'b0111101111000100xxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_FLOG2_W  ;//FLOG2.W
            32'b01111010001xxxxxxxxxxxxxxx000111:r[11:0]=`JZ4785_UMSC_S3IL0_H  ;//S3IL0.H
            32'b01111010111xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMSC_SRA_D    ;//SRA.D
            32'b01111010100xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMSC_SRA_B    ;//SRA.B
            32'b01111010110xxxxxxxxxxxxxxx010011:r[11:0]=`JZ4785_UMSC_SRA_W    ;//SRA.W
            32'b01111010010xxxxxxxxxxxxxxx000111:r[11:0]=`JZ4785_UMSC_S3IL0_W  ;//S3IL0.W
            32'b0100011000100000xxxxxxxxxx000101:r[11:0]=`JZ4785_UMSC_ABS_D    ;//ABS.D
            32'b01111010xxxxxxxxxxxxxxxxxx001010:r[11:0]=`JZ4785_UMSC_NOR_B    ;//NORI.B
            32'b0100011000000000xxxxxxxxxx000111:r[11:0]=`JZ4785_UMSC_NEG_S    ;//NEG.S
            32'b0100011000100000xxxxxxxxxx000111:r[11:0]=`JZ4785_UMSC_NEG_D    ;//NEG.D
            32'b01111011010xxxxxxxxxxxxxxx011011:r[11:0]=`JZ4785_UMSC_FEXP2_W  ;//FEXP2.W
            32'b01111001100xxxxxxxxxxxxxxx010101:r[11:0]=`JZ4785_UMSC_PCKOD_B  ;//PCKOD.B
            32'b0100011010000000xxxxxxxxxx100000:r[11:0]=`JZ4785_UMSC_CVT_S_W  ;//CVT.S.W
            32'b01111011011xxxxxxxxxxxxxxx011011:r[11:0]=`JZ4785_UMSC_FEXP2_D  ;//FEXP2.D
            32'b01111000000xxxxxxxxxxxxxxx001111:r[11:0]=`JZ4785_UMSC_AND_B    ;//AND.V
            32'b0100011000000000xxxxxxxxxx000101:r[11:0]=`JZ4785_UMSC_ABS_S    ;//ABS.S
            32'b01111010101xxxxxxxxxxxxxxx000101:r[11:0]=`JZ4785_UMSC_SE3L1_H  ;//SE3L1.H
            32'b011110001010xxxxxxxxxxxxxx011010:r[ 7:0]=`JZ4785_UXCG_MVTG_S_H ;//MVTG_S.H
            32'b010011xxxxxxxxxxxxxxx00000001101:r[ 7:0]=`JZ4785_UXCG_SDXC1    ;//SUXC1
            32'b111001xxxxxxxxxxxxxxxxxxxxxxxxxx:r[ 7:0]=`JZ4785_UXCG_SWC1     ;//SWC1
            32'b01111001100xxxxxxxxxxxxxxx010110:r[ 7:0]=`JZ4785_UXCG_SLDR_B   ;//SLDR.B
            32'b01000110110xxx00xxxxxxxxxx010001:r[ 7:0]=`JZ4785_UXCG_MOVF_PS  ;//MOVF.PS
            32'b110001xxxxxxxxxxxxxxxxxxxxxxxxxx:r[ 7:0]=`JZ4785_UXCG_LW       ;//LWC1
            32'b01000100010xxxxxxxxxx00000000000:r[ 7:0]=`JZ4785_UXCG_CFC1     ;//CFC1
            32'b01000110001xxxxxxxxxxxxx0011xxxx:r[ 7:0]=`JZ4785_UXCG_COND_D   ;//C.cond.D
            32'b01000100011xxxxxxxxxx00000000000:r[ 7:0]=`JZ4785_UXCG_MFHC1    ;//MFHC1
            32'b010011xxxxxxxxxxxxxxxxxxxx011110:r[ 7:0]=`JZ4785_UXCG_ALNV_PS  ;//ALNV.PS
            32'b010011xxxxxxxxxx00000xxxxx000101:r[ 7:0]=`JZ4785_UXCG_LD       ;//LUXC1
            32'b0111100011111110xxxxxxxxxx011010:r[ 7:0]=`JZ4785_UXCG_CFCMSA   ;//CFCMSA
            32'b01111001111xxxxxxxxxxxxxxx010110:r[ 7:0]=`JZ4785_UXCG_SLDR_D   ;//SLDR.D
            32'b01111001001xxxxxxxxxxxxxxx010110:r[ 7:0]=`JZ4785_UXCG_MVTGR_U_H;//MVTGR_U.H
            32'b01111001101xxxxxxxxxxxxxxx001111:r[ 7:0]=`JZ4785_UXCG_STV      ;//ST.V
            32'b01111000100xxxxxxxxxxxxxxx011010:r[ 7:0]=`JZ4785_UXCG_MVTG_S_B ;//MVTG_S.B
            32'b01111000001110xxxxxxxxxxxx011010:r[ 7:0]=`JZ4785_UXCG_SLD_D    ;//SLD.D
            32'b01000110110xxx01xxxxxxxxxx010001:r[ 7:0]=`JZ4785_UXCG_MOVT_PS  ;//MOVT.PS
            32'b010011xxxxxxxxxxxxxxx00000001000:r[ 7:0]=`JZ4785_UXCG_SWXC1    ;//SWXC1
            32'b0111100010110xxxxxxxxxxxxx011010:r[ 7:0]=`JZ4785_UXCG_MVTG_S_W ;//MVTG_S.W
            32'b010011xxxxxxxxxx00000xxxxx000000:r[ 7:0]=`JZ4785_UXCG_LW       ;//LWXC1
            32'b01111001100xxxxxxxxxxxxxxx001111:r[ 7:0]=`JZ4785_UXCG_LV       ;//LDX.V
            32'b01111000100xxxxxxxxxxxxxxx010110:r[ 7:0]=`JZ4785_UXCG_MVTGR_S_B;//MVTGR_S.B
            32'b0111100100110xxxxxxxxxxxxx011010:r[ 7:0]=`JZ4785_UXCG_MVFGE_W  ;//MVFGE.W
            32'b01111001010xxxxxxxxxxxxxxx010110:r[ 7:0]=`JZ4785_UXCG_MVTGR_U_W;//MVTGR_U.W
            32'b01111001101xxxxxxxxxxxxxxx010110:r[ 7:0]=`JZ4785_UXCG_SLDR_H   ;//SLDR.H
            32'b01000101000xxx10xxxxxxxxxxxxxxxx:r[ 7:0]=`JZ4785_UXCG_BC1F     ;//BC1FL
            32'b01000101000xxx11xxxxxxxxxxxxxxxx:r[ 7:0]=`JZ4785_UXCG_BC1T     ;//BC1TL
            32'b0111100010111110xxxxxxxxxx011010:r[ 7:0]=`JZ4785_UXCG_CTCMSA   ;//CTCMSA
            32'b01111000110xxxxxxxxxxxxxxx010110:r[ 7:0]=`JZ4785_UXCG_MVTGR_S_W;//MVTGR_S.W
            32'b010011xxxxxxxxxxxxxxx00000001001:r[ 7:0]=`JZ4785_UXCG_SDXC1    ;//SDXC1
            32'b01111000110xxxxxxxxxxxxxxx011010:r[ 7:0]=`JZ4785_UXCG_MVTG_U_B ;//MVTG_U.B
            32'b011110001110xxxxxxxxxxxxxx011010:r[ 7:0]=`JZ4785_UXCG_MVTG_U_H ;//MVTG_U.H
            32'b0111100011110xxxxxxxxxxxxx011010:r[ 7:0]=`JZ4785_UXCG_MVTG_U_W ;//MVTG_U.W
            32'b01000110110xxxxxxxxxxxxxxx010011:r[ 7:0]=`JZ4785_UXCG_MOVN_DP  ;//MOVN.PS
            32'b01000110001xxxxxxxxxxxxxxx010010:r[ 7:0]=`JZ4785_UXCG_MOVZ_DP  ;//MOVZ.D
            32'b01000101000xxx01xxxxxxxxxxxxxxxx:r[ 7:0]=`JZ4785_UXCG_BC1T     ;//BC1T
            32'b01000101000xxx00xxxxxxxxxxxxxxxx:r[ 7:0]=`JZ4785_UXCG_BC1F     ;//BC1F
            32'b01000100111xxxxxxxxxx00000000000:r[ 7:0]=`JZ4785_UXCG_MTHC1    ;//MTHC1
            32'b110101xxxxxxxxxxxxxxxxxxxxxxxxxx:r[ 7:0]=`JZ4785_UXCG_LD       ;//LDC1
            32'b01111001110xxxxxxxxxxxxxxx010110:r[ 7:0]=`JZ4785_UXCG_SLDR_W   ;//SLDR.W
            32'b01111000011xxxxxxxxxxxxxxx001110:r[ 7:0]=`JZ4785_UXCG_BNZ_D    ;//BNZ.D
            32'b01000100100xxxxxxxxxx00000000000:r[ 7:0]=`JZ4785_UXCG_MTC1     ;//MTC1
            32'b01111000101xxxxxxxxxxxxxxx010110:r[ 7:0]=`JZ4785_UXCG_MVTGR_S_H;//MVTGR_S.H
            32'b0111100000110xxxxxxxxxxxxx011010:r[ 7:0]=`JZ4785_UXCG_SLD_W    ;//SLD.W
            32'b01000100110xxxxxxxxxx00000000000:r[ 7:0]=`JZ4785_UXCG_CTC1     ;//CTC1
            32'b01111001110xxxxxxxxxxxxxxx001111:r[ 7:0]=`JZ4785_UXCG_STV      ;//STX.V
            32'b01111000010xxxxxxxxxxxxxxx010110:r[ 7:0]=`JZ4785_UXCG_MOVER_W  ;//MOVER.W
            32'b01111000001xxxxxxxxxxxxxxx010110:r[ 7:0]=`JZ4785_UXCG_MOVER_H  ;//MOVER.H
            32'b01111000011xxxxxxxxxxxxxxx010110:r[ 7:0]=`JZ4785_UXCG_MOVER_D  ;//MOVER.D
            32'b01111000000xxxxxxxxxxxxxxx010110:r[ 7:0]=`JZ4785_UXCG_MOVER_B  ;//MOVER.B
            32'b01000110000xxxxxxxxxxxxxxx010010:r[ 7:0]=`JZ4785_UXCG_MOVZ_S   ;//MOVZ.S
            32'b01000110001xxxxxxxxxxxxxxx010011:r[ 7:0]=`JZ4785_UXCG_MOVN_DP  ;//MOVN.D
            32'b01000110000xxxxxxxxxxxxxxx010011:r[ 7:0]=`JZ4785_UXCG_MOVN_S   ;//MOVN.S
            32'b011110010010xxxxxxxxxxxxxx011010:r[ 7:0]=`JZ4785_UXCG_MVFGE_H  ;//MVFGE.H
            32'b01111001011xxxxxxxxxxxxxxx001111:r[ 7:0]=`JZ4785_UXCG_LV       ;//LD.V
            32'b01111001000xxxxxxxxxxxxxxx011010:r[ 7:0]=`JZ4785_UXCG_MVFGE_B  ;//MVFGE.B
            32'b01000110000xxx00xxxxxxxxxx010001:r[ 7:0]=`JZ4785_UXCG_MOVF_S   ;//MOVF.S
            32'b01000100000xxxxxxxxxx00000000000:r[ 7:0]=`JZ4785_UXCG_MFC1     ;//MFC1
            32'b01000110001xxx00xxxxxxxxxx010001:r[ 7:0]=`JZ4785_UXCG_MOVF_D   ;//MOVF.D
            32'b01111010010xxxxxxxxxxxxxxx010110:r[ 7:0]=`JZ4785_UXCG_MVFGER_W ;//MVFGER.W
            32'b01111010001xxxxxxxxxxxxxxx010110:r[ 7:0]=`JZ4785_UXCG_MVFGER_H ;//MVFGER.H
            32'b01111010000xxxxxxxxxxxxxxx010110:r[ 7:0]=`JZ4785_UXCG_MVFGER_B ;//MVFGER.B
            32'b0111101110000010xxxxxxxxxx001111:r[ 7:0]=`JZ4785_UXCG_MVFG_W   ;//MVFG.W
            32'b000000xxxxxxxx00xxxxx00000000001:r[ 7:0]=`JZ4785_UXCG_MOVF     ;//MOVF
            32'b01000110000xxxxxxxxxxxxx0011xxxx:r[ 7:0]=`JZ4785_UXCG_COND_S   ;//C.cond.S
            32'b0111101110000000xxxxxxxxxx001111:r[ 7:0]=`JZ4785_UXCG_MVFG_B   ;//MVFG.B
            32'b000000xxxxxxxx01xxxxx00000000001:r[ 7:0]=`JZ4785_UXCG_MOVT     ;//MOVT
            32'b0111101110000001xxxxxxxxxx001111:r[ 7:0]=`JZ4785_UXCG_MVFG_H   ;//MVFG.H
            32'b010011xxxxxxxxxx00000xxxxx000001:r[ 7:0]=`JZ4785_UXCG_LD       ;//LDXC1
            32'b01111000111xxxxxxxxxxxxxxx001111:r[ 7:0]=`JZ4785_UXCG_BNZ_V    ;//BNZ.V
            32'b01111000001xxxxxxxxxxxxxxx001110:r[ 7:0]=`JZ4785_UXCG_BNZ_H    ;//BNZ.H
            32'b01111000010xxxxxxxxxxxxxxx001110:r[ 7:0]=`JZ4785_UXCG_BNZ_W    ;//BNZ.W
            32'b01111000000xxxxxxxxxxxxxxx001110:r[ 7:0]=`JZ4785_UXCG_BNZ_B    ;//BNZ.B
            32'b01000110000xxx01xxxxxxxxxx010001:r[ 7:0]=`JZ4785_UXCG_MOVT_S   ;//MOVT.S
            32'b01000110001xxx01xxxxxxxxxx010001:r[ 7:0]=`JZ4785_UXCG_MOVT_D   ;//MOVT.D
            32'b01111000101xxxxxxxxxxxxxxx001110:r[ 7:0]=`JZ4785_UXCG_BZ_H     ;//BZ.H
            32'b01111000100xxxxxxxxxxxxxxx001110:r[ 7:0]=`JZ4785_UXCG_BZ_B     ;//BZ.B
            32'b01111000111xxxxxxxxxxxxxxx001110:r[ 7:0]=`JZ4785_UXCG_BZ_D     ;//BZ.D
            32'b01111001000xxxxxxxxxxxxxxx001111:r[ 7:0]=`JZ4785_UXCG_BZ_V     ;//BZ.V
            32'b01111000110xxxxxxxxxxxxxxx001110:r[ 7:0]=`JZ4785_UXCG_BZ_W     ;//BZ.W
            32'b111101xxxxxxxxxxxxxxxxxxxxxxxxxx:r[ 7:0]=`JZ4785_UXCG_SDC1     ;//SDC1
            32'b01000110110xxxxxxxxxxxxx0011xxxx:r[ 7:0]=`JZ4785_UXCG_COND_P   ;//C.cond.PS
            32'b01000110110xxxxxxxxxxxxxxx010010:r[ 7:0]=`JZ4785_UXCG_MOVZ_DP  ;//MOVZ.PS
            32'b011110000010xxxxxxxxxxxxxx011010:r[ 7:0]=`JZ4785_UXCG_SLD_H    ;//SLD.H
            32'b01111000000xxxxxxxxxxxxxxx011010:r[ 7:0]=`JZ4785_UXCG_SLD_B    ;//SLD.B
            32'b01111001000xxxxxxxxxxxxxxx010110:r[ 7:0]=`JZ4785_UXCG_MVTGR_U_B;//MVTGR_U.B
        endcase
    fxu_ucode_decode_gen=r;
    end
    endfunction

//============================================================
// build by build_insn_unit
// generate unit
//============================================================

parameter UNIT_NOP=0;
parameter UNIT_ELF=1;
parameter UNIT_MUL=2;
parameter UNIT_ADD=3;
parameter UNIT_MSC=4;
parameter UNIT_XCG=5;

function automatic [2:0] fxu_unit_gen;
    input [31:0] i_insn;
    begin

    fxu_unit_gen=UNIT_NOP;
    casex(i_insn)
        32'b0100011000100000xxxxxxxxxx000100,//SQRT.D
        32'b01000110000xxxxxxxxxxxxxxx000011,//DIV.S
        32'b01111010011xxxxxxxxxxxxxxx011011,//FDIV.D
        32'b01111010010xxxxxxxxxxxxxxx011011,//FDIV.W
        32'b0100011000000000xxxxxxxxxx000100,//SQRT.S
        32'b0100011000000000xxxxxxxxxx010101,//RECIP.S
        32'b0111101111000000xxxxxxxxxx001111,//FSQRT.W
        32'b0111101111000001xxxxxxxxxx001111,//FSQRT.D
        32'b0100011000000000xxxxxxxxxx010110,//RSQRT.S
        32'b0100011000100000xxxxxxxxxx010110,//RSQRT.D
        32'b0100011000100000xxxxxxxxxx010101,//RECIP.D
        32'b01000110001xxxxxxxxxxxxxxx000011://DIV.D
            fxu_unit_gen=UNIT_ELF;
        32'b01111000110xxxxxxxxxxxxxxx010011,//DPADD_U.W
        32'b01111000101xxxxxxxxxxxxxxx010011,//DPADD_U.H
        32'b01111000111xxxxxxxxxxxxxxx010011,//DPADD_U.D
        32'b01111001110xxxxxxxxxxxxxxx010010,//MULV.W
        32'b01111001111xxxxxxxxxxxxxxx010010,//MULV.D
        32'b01111001010xxxxxxxxxxxxxxx011011,//MSUBR_Q.H
        32'b01111001101xxxxxxxxxxxxxxx010010,//MULV.H
        32'b01111001110xxxxxxxxxxxxxxx010011,//DPSUB_U.W
        32'b01111000001xxxxxxxxxxxxxxx010011,//DPADD_S.H
        32'b01111000011xxxxxxxxxxxxxxx010011,//DPADD_S.D
        32'b01111000010xxxxxxxxxxxxxxx010011,//DPADD_S.W
        32'b01111001111xxxxxxxxxxxxxxx010011,//DPSUB_U.D
        32'b01111000101xxxxxxxxxxxxxxx011011,//MADD_Q.W
        32'b01111001100xxxxxxxxxxxxxxx000010,//MULVI.B
        32'b01111001111xxxxxxxxxxxxxxx000010,//MULVI.D
        32'b01111001101xxxxxxxxxxxxxxx000010,//MULVI.H
        32'b01111001110xxxxxxxxxxxxxxx000010,//MULVI.W
        32'b01111001001xxxxxxxxxxxxxxx000011,//DPSUBI_S.H
        32'b01111010000xxxxxxxxxxxxxxx011011,//FMUL.W
        32'b01111001110xxxxxxxxxxxxxxx000011,//DPSUBI_U.W
        32'b01111001011xxxxxxxxxxxxxxx000011,//DPSUBI_S.D
        32'b01111010001xxxxxxxxxxxxxxx011011,//FMUL.D
        32'b01111001101xxxxxxxxxxxxxxx000011,//DPSUBI_U.H
        32'b01111001111xxxxxxxxxxxxxxx000011,//DPSUBI_U.D
        32'b01111001010xxxxxxxxxxxxxxx000011,//DPSUBI_S.W
        32'b010011xxxxxxxxxxxxxxxxxxxx101110,//MSUB.PS
        32'b01111001010xxxxxxxxxxxxxxx010011,//DPSUB_S.W
        32'b01111001001xxxxxxxxxxxxxxx010011,//DPSUB_S.H
        32'b01111001011xxxxxxxxxxxxxxx010011,//DPSUB_S.D
        32'b01111001011xxxxxxxxxxxxxxx011011,//MSUBR_Q.W
        32'b01111010110xxxxxxxxxxxxxxx000010,//MSUBVI.W
        32'b01111010111xxxxxxxxxxxxxxx000010,//MSUBVI.D
        32'b01111010100xxxxxxxxxxxxxxx000010,//MSUBVI.B
        32'b01111010101xxxxxxxxxxxxxxx000010,//MSUBVI.H
        32'b01111010010xxxxxxxxxxxxxxx000010,//MADDVI.W
        32'b01111001100xxxxxxxxxxxxxxx010010,//MULV.B
        32'b01111001101xxxxxxxxxxxxxxx010011,//DPSUB_U.H
        32'b01111010110xxxxxxxxxxxxxxx011011,//FMADD.W
        32'b010011xxxxxxxxxxxxxxxxxxxx111110,//NMSUB.PS
        32'b01111010111xxxxxxxxxxxxxxx011011,//FMADD.D
        32'b01111010011xxxxxxxxxxxxxxx000010,//MADDVI.D
        32'b01000110001xxxxxxxxxxxxxxx000010,//MUL.D
        32'b010011xxxxxxxxxxxxxxxxxxxx101001,//MSUB.D
        32'b01000110000xxxxxxxxxxxxxxx000010,//MUL.S
        32'b010011xxxxxxxxxxxxxxxxxxxx101000,//MSUB.S
        32'b01111000111xxxxxxxxxxxxxxx011011,//MADDR_Q.W
        32'b01111000110xxxxxxxxxxxxxxx011011,//MADDR_Q.H
        32'b01111010001xxxxxxxxxxxxxxx000010,//MADDVI.H
        32'b01111000001xxxxxxxxxxxxxxx011011,//MUL_Q.W
        32'b01111010000xxxxxxxxxxxxxxx000010,//MADDVI.B
        32'b01111000000xxxxxxxxxxxxxxx011011,//MUL_Q.H
        32'b010011xxxxxxxxxxxxxxxxxxxx110000,//NMADD.S
        32'b010011xxxxxxxxxxxxxxxxxxxx110001,//NMADD.D
        32'b01111011000xxxxxxxxxxxxxxx011011,//FMSUB.W
        32'b01111011001xxxxxxxxxxxxxxx011011,//FMSUB.D
        32'b01111010000xxxxxxxxxxxxxxx010010,//MADDV.B
        32'b01111010011xxxxxxxxxxxxxxx010010,//MADDV.D
        32'b01111010001xxxxxxxxxxxxxxx010010,//MADDV.H
        32'b01111010010xxxxxxxxxxxxxxx010010,//MADDV.W
        32'b01111011010xxxxxxxxxxxxxxx010010,//DOTP_S.W
        32'b01111011011xxxxxxxxxxxxxxx010010,//DOTP_S.D
        32'b01111011001xxxxxxxxxxxxxxx010010,//DOTP_S.H
        32'b01111011111xxxxxxxxxxxxxxx010010,//DOTP_U.D
        32'b01111011101xxxxxxxxxxxxxxx010010,//DOTP_U.H
        32'b01111011110xxxxxxxxxxxxxxx010010,//DOTP_U.W
        32'b010011xxxxxxxxxxxxxxxxxxxx110110,//NMADD.PS
        32'b01111000100xxxxxxxxxxxxxxx011011,//MADD_Q.H
        32'b01111000001xxxxxxxxxxxxxxx000011,//DPADDI_S.H
        32'b01111000110xxxxxxxxxxxxxxx000011,//DPADDI_U.W
        32'b01111000011xxxxxxxxxxxxxxx000011,//DPADDI_S.D
        32'b01111000111xxxxxxxxxxxxxxx000011,//DPADDI_U.D
        32'b01111000101xxxxxxxxxxxxxxx000011,//DPADDI_U.H
        32'b01111000010xxxxxxxxxxxxxxx000011,//DPADDI_S.W
        32'b010011xxxxxxxxxxxxxxxxxxxx100110,//MADD.PS
        32'b010011xxxxxxxxxxxxxxxxxxxx111001,//NMSUB.D
        32'b01111000011xxxxxxxxxxxxxxx011011,//MULR_Q.W
        32'b010011xxxxxxxxxxxxxxxxxxxx111000,//NMSUB.S
        32'b01111000010xxxxxxxxxxxxxxx011011,//MULR_Q.H
        32'b01111011110xxxxxxxxxxxxxxx000010,//DOTPI_U.W
        32'b01111011101xxxxxxxxxxxxxxx000010,//DOTPI_U.H
        32'b01111011111xxxxxxxxxxxxxxx000010,//DOTPI_U.D
        32'b01111001001xxxxxxxxxxxxxxx011011,//MSUB_Q.W
        32'b01111011011xxxxxxxxxxxxxxx000010,//DOTPI_S.D
        32'b01111011001xxxxxxxxxxxxxxx000010,//DOTPI_S.H
        32'b01111011010xxxxxxxxxxxxxxx000010,//DOTPI_S.W
        32'b01111001000xxxxxxxxxxxxxxx011011,//MSUB_Q.H
        32'b010011xxxxxxxxxxxxxxxxxxxx100000,//MADD.S
        32'b010011xxxxxxxxxxxxxxxxxxxx100001,//MADD.D
        32'b01111010101xxxxxxxxxxxxxxx010010,//MSUBV.H
        32'b01000110110xxxxxxxxxxxxxxx000010,//MUL.PS
        32'b01111010110xxxxxxxxxxxxxxx010010,//MSUBV.W
        32'b01111010111xxxxxxxxxxxxxxx010010,//MSUBV.D
        32'b01111010100xxxxxxxxxxxxxxx010010://MSUBV.B
            fxu_unit_gen=UNIT_MUL;
        32'b01111000001xxxxxxxxxxxxxxx000010,//MINI_U.H
        32'b01111000000xxxxxxxxxxxxxxx000010,//MINI_U.B
        32'b01111011110xxxxxxxxxxxxxxx000001,//MINI_S.W
        32'b01111000011xxxxxxxxxxxxxxx000010,//MINI_U.D
        32'b01111011101xxxxxxxxxxxxxxx000001,//MINI_S.H
        32'b01111011111xxxxxxxxxxxxxxx000001,//MINI_S.D
        32'b01111000010xxxxxxxxxxxxxxx000010,//MINI_U.W
        32'b01111011100xxxxxxxxxxxxxxx000001,//MINI_S.B
        32'b01000110001xxxxxxxxxxxxxxx000001,//SUB.D
        32'b01111001011xxxxxxxxxxxxxxx000000,//ADDSI_A.D
        32'b01111001001xxxxxxxxxxxxxxx000000,//ADDSI_A.H
        32'b01111011110xxxxxxxxxxxxxxx011011,//FMAX_A.W
        32'b01111001101xxxxxxxxxxxxxxx011011,//FADD.D
        32'b01111000010xxxxxxxxxxxxxxx010010,//MIN_U.W
        32'b01111000001xxxxxxxxxxxxxxx010010,//MIN_U.H
        32'b01111001100xxxxxxxxxxxxxxx011011,//FADD.W
        32'b01111011111xxxxxxxxxxxxxxx011011,//FMAX_A.D
        32'b01111000000xxxxxxxxxxxxxxx010010,//MIN_U.B
        32'b01111000011xxxxxxxxxxxxxxx010010,//MIN_U.D
        32'b01111010001xxxxxxxxxxxxxxx010000,//ADDS_U.H
        32'b01111010000xxxxxxxxxxxxxxx010000,//ADDS_U.B
        32'b01111010011xxxxxxxxxxxxxxx010000,//ADDS_U.D
        32'b01111010010xxxxxxxxxxxxxxx010000,//ADDS_U.W
        32'b01111000111xxxxxxxxxxxxxxx010000,//ADD_A.D
        32'b01111000000xxxxxxxxxxxxxxx000000,//ADDVI.B
        32'b01111000011xxxxxxxxxxxxxxx000000,//ADDVI.D
        32'b01111010100xxxxxxxxxxxxxxx010000,//SUBV.B
        32'b01111010111xxxxxxxxxxxxxxx010000,//SUBV.D
        32'b01111010101xxxxxxxxxxxxxxx010000,//SUBV.H
        32'b01111010110xxxxxxxxxxxxxxx010000,//SUBV.W
        32'b01111000010xxxxxxxxxxxxxxx000001,//SUBSI_S.W
        32'b01111000000xxxxxxxxxxxxxxx000001,//SUBSI_S.B
        32'b01111000011xxxxxxxxxxxxxxx000001,//SUBSI_S.D
        32'b01000110110xxxxxxxxxxxxxxx000000,//ADD.PS
        32'b01111011111xxxxxxxxxxxxxxx010000,//ASUB_U.D
        32'b01111011100xxxxxxxxxxxxxxx000000,//ASUBI_U.B
        32'b01111001010xxxxxxxxxxxxxxx000001,//SUBSSI_U.W
        32'b01111011010xxxxxxxxxxxxxxx010100,//CLE_S.W
        32'b01111001011xxxxxxxxxxxxxxx000001,//SUBSSI_U.D
        32'b01111011001xxxxxxxxxxxxxxx010100,//CLE_S.H
        32'b01111001000xxxxxxxxxxxxxxx000001,//SUBSSI_U.B
        32'b01111011011xxxxxxxxxxxxxxx010100,//CLE_S.D
        32'b01111001001xxxxxxxxxxxxxxx000001,//SUBSSI_U.H
        32'b01111011000xxxxxxxxxxxxxxx010100,//CLE_S.B
        32'b01111000100xxxxxxxxxxxxxxx000010,//AVEI_S.B
        32'b01111011110xxxxxxxxxxxxxxx010000,//ASUB_U.W
        32'b01111001011xxxxxxxxxxxxxxx010000,//ADDS_A.D
        32'b01111001000xxxxxxxxxxxxxxx010000,//ADDS_A.B
        32'b01111000111xxxxxxxxxxxxxxx000010,//AVEI_S.D
        32'b01111001001xxxxxxxxxxxxxxx010000,//ADDS_A.H
        32'b01111001010xxxxxxxxxxxxxxx010000,//ADDS_A.W
        32'b01111001111xxxxxxxxxxxxxxx010000,//ADDS_S.D
        32'b01111001100xxxxxxxxxxxxxxx010000,//ADDS_S.B
        32'b01111011010xxxxxxxxxxxxxxx000001,//MINI_A.W
        32'b01111001101xxxxxxxxxxxxxxx010000,//ADDS_S.H
        32'b01111001110xxxxxxxxxxxxxxx010000,//ADDS_S.W
        32'b01111011001xxxxxxxxxxxxxxx000001,//MINI_A.H
        32'b01111011011xxxxxxxxxxxxxxx000001,//MINI_A.D
        32'b01111011000xxxxxxxxxxxxxxx000001,//MINI_A.B
        32'b01111000101xxxxxxxxxxxxxxx000001,//SUBSI_U.H
        32'b01111000101xxxxxxxxxxxxxxx010001,//SUBS_U.H
        32'b01111000111xxxxxxxxxxxxxxx000001,//SUBSI_U.D
        32'b01111000111xxxxxxxxxxxxxxx010001,//SUBS_U.D
        32'b01111000100xxxxxxxxxxxxxxx010001,//SUBS_U.B
        32'b01111000100xxxxxxxxxxxxxxx000001,//SUBSI_U.B
        32'b01111000110xxxxxxxxxxxxxxx010001,//SUBS_U.W
        32'b01111000110xxxxxxxxxxxxxxx000001,//SUBSI_U.W
        32'b01111000110xxxxxxxxxxxxxxx000000,//ADDI_A.W
        32'b01111000010xxxxxxxxxxxxxxx010001,//SUBS_S.W
        32'b01111000001xxxxxxxxxxxxxxx010001,//SUBS_S.H
        32'b01111000000xxxxxxxxxxxxxxx010001,//SUBS_S.B
        32'b01111000011xxxxxxxxxxxxxxx010001,//SUBS_S.D
        32'b01111001000xxxxxxxxxxxxxxx011100,//FCLE.W
        32'b01111001001xxxxxxxxxxxxxxx011100,//FCLE.D
        32'b01111010101xxxxxxxxxxxxxxx010100,//CLT_S.H
        32'b01111001011xxxxxxxxxxxxxxx000010,//AVEI_U.D
        32'b01111001000xxxxxxxxxxxxxxx000010,//AVEI_U.B
        32'b01111010100xxxxxxxxxxxxxxx010100,//CLT_S.B
        32'b01111000001xxxxxxxxxxxxxxx010101,//CLE_U.H
        32'b01111010111xxxxxxxxxxxxxxx010100,//CLT_S.D
        32'b01111001001xxxxxxxxxxxxxxx000010,//AVEI_U.H
        32'b01111001010xxxxxxxxxxxxxxx000010,//AVEI_U.W
        32'b01111000010xxxxxxxxxxxxxxx010101,//CLE_U.W
        32'b01111010110xxxxxxxxxxxxxxx010100,//CLT_S.W
        32'b01111001010xxxxxxxxxxxxxxx000000,//ADDSI_A.W
        32'b01111011110xxxxxxxxxxxxxxx010100,//CLT_U.W
        32'b01111001000xxxxxxxxxxxxxxx000000,//ADDSI_A.B
        32'b01111011101xxxxxxxxxxxxxxx010100,//CLT_U.H
        32'b01111011111xxxxxxxxxxxxxxx010100,//CLT_U.D
        32'b01111011100xxxxxxxxxxxxxxx010100,//CLT_U.B
        32'b01111010011xxxxxxxxxxxxxxx000000,//ADDSI_U.D
        32'b01111010000xxxxxxxxxxxxxxx000000,//ADDSI_U.B
        32'b01111010001xxxxxxxxxxxxxxx000000,//ADDSI_U.H
        32'b01111010010xxxxxxxxxxxxxxx000000,//ADDSI_U.W
        32'b01111011100xxxxxxxxxxxxxxx010000,//ASUB_U.B
        32'b01111011010xxxxxxxxxxxxxxx010000,//ASUB_S.W
        32'b01111000110xxxxxxxxxxxxxxx000010,//AVEI_S.W
        32'b01111001110xxxxxxxxxxxxxxx000000,//ADDSI_S.W
        32'b01111011101xxxxxxxxxxxxxxx010000,//ASUB_U.H
        32'b01111011011xxxxxxxxxxxxxxx010000,//ASUB_S.D
        32'b01111001100xxxxxxxxxxxxxxx000000,//ADDSI_S.B
        32'b01111001111xxxxxxxxxxxxxxx000000,//ADDSI_S.D
        32'b01111011000xxxxxxxxxxxxxxx010000,//ASUB_S.B
        32'b01111001101xxxxxxxxxxxxxxx000000,//ADDSI_S.H
        32'b01111000101xxxxxxxxxxxxxxx000010,//AVEI_S.H
        32'b01111011001xxxxxxxxxxxxxxx010000,//ASUB_S.H
        32'b01111000011xxxxxxxxxxxxxxx011100,//FMIN_A.D
        32'b01111000101xxxxxxxxxxxxxxx000000,//ADDI_A.H
        32'b01111000010xxxxxxxxxxxxxxx011100,//FMIN_A.W
        32'b01111000011xxxxxxxxxxxxxxx010000,//ADDV.D
        32'b01111000000xxxxxxxxxxxxxxx010000,//ADDV.B
        32'b01111000001xxxxxxxxxxxxxxx010000,//ADDV.H
        32'b01111000010xxxxxxxxxxxxxxx010000,//ADDV.W
        32'b01111011000xxxxxxxxxxxxxxx000011,//CLEI_S.B
        32'b01111000010xxxxxxxxxxxxxxx000100,//CLEI_U.W
        32'b01111011011xxxxxxxxxxxxxxx000011,//CLEI_S.D
        32'b01111011001xxxxxxxxxxxxxxx000011,//CLEI_S.H
        32'b01111000011xxxxxxxxxxxxxxx000100,//CLEI_U.D
        32'b01111011010xxxxxxxxxxxxxxx000011,//CLEI_S.W
        32'b01111000000xxxxxxxxxxxxxxx000100,//CLEI_U.B
        32'b01111000001xxxxxxxxxxxxxxx000100,//CLEI_U.H
        32'b01111010000xxxxxxxxxxxxxxx000001,//MAXI_S.B
        32'b01111010110xxxxxxxxxxxxxxx000001,//MAXI_U.W
        32'b01111010011xxxxxxxxxxxxxxx000001,//MAXI_S.D
        32'b01111010001xxxxxxxxxxxxxxx000001,//MAXI_S.H
        32'b01111010111xxxxxxxxxxxxxxx000001,//MAXI_U.D
        32'b01111010010xxxxxxxxxxxxxxx000001,//MAXI_S.W
        32'b01111010100xxxxxxxxxxxxxxx000001,//MAXI_U.B
        32'b01111010101xxxxxxxxxxxxxxx000001,//MAXI_U.H
        32'b01111001100xxxxxxxxxxxxxxx000001,//MAXI_A.B
        32'b01111001111xxxxxxxxxxxxxxx000001,//MAXI_A.D
        32'b01111001101xxxxxxxxxxxxxxx000001,//MAXI_A.H
        32'b01111001110xxxxxxxxxxxxxxx000001,//MAXI_A.W
        32'b01111000100xxxxxxxxxxxxxxx010000,//ADD_A.B
        32'b01111000101xxxxxxxxxxxxxxx010000,//ADD_A.H
        32'b01111000110xxxxxxxxxxxxxxx010000,//ADD_A.W
        32'b01111000100xxxxxxxxxxxxxxx000000,//ADDI_A.B
        32'b01111000111xxxxxxxxxxxxxxx000000,//ADDI_A.D
        32'b01111001100xxxxxxxxxxxxxxx011100,//FCEQU.W
        32'b01111011100xxxxxxxxxxxxxxx011011,//FMAX.W
        32'b01111000010xxxxxxxxxxxxxxx000000,//ADDVI.W
        32'b01111011101xxxxxxxxxxxxxxx011011,//FMAX.D
        32'b01111001101xxxxxxxxxxxxxxx011100,//FCEQU.D
        32'b01111011100xxxxxxxxxxxxxxx010001,//MIN_S.B
        32'b01111010010xxxxxxxxxxxxxxx010100,//CEQ.W
        32'b01111001111xxxxxxxxxxxxxxx011011,//FSUB.D
        32'b01111010011xxxxxxxxxxxxxxx010100,//CEQ.D
        32'b01111010000xxxxxxxxxxxxxxx010100,//CEQ.B
        32'b01111010011xxxxxxxxxxxxxxx010001,//MAX_S.D
        32'b01111001110xxxxxxxxxxxxxxx011011,//FSUB.W
        32'b01111010001xxxxxxxxxxxxxxx010100,//CEQ.H
        32'b01111011101xxxxxxxxxxxxxxx010001,//MIN_S.H
        32'b01111010111xxxxxxxxxxxxxxx000000,//SUBVI.D
        32'b01111000001xxxxxxxxxxxxxxx000000,//ADDVI.H
        32'b01111010100xxxxxxxxxxxxxxx000000,//SUBVI.B
        32'b01111000101xxxxxxxxxxxxxxx011100,//FCEQ.D
        32'b01111010101xxxxxxxxxxxxxxx000000,//SUBVI.H
        32'b01111010110xxxxxxxxxxxxxxx000000,//SUBVI.W
        32'b01111000100xxxxxxxxxxxxxxx011100,//FCEQ.W
        32'b01111001110xxxxxxxxxxxxxxx010001,//MAX_A.W
        32'b01111001011xxxxxxxxxxxxxxx011100,//FCUN.D
        32'b01111001101xxxxxxxxxxxxxxx010001,//MAX_A.H
        32'b01111001111xxxxxxxxxxxxxxx010001,//MAX_A.D
        32'b01111001100xxxxxxxxxxxxxxx010001,//MAX_A.B
        32'b01111001010xxxxxxxxxxxxxxx011100,//FCUN.W
        32'b01111000110xxxxxxxxxxxxxxx011100,//FCLT.W
        32'b01111000111xxxxxxxxxxxxxxx011100,//FCLT.D
        32'b01000110000xxxxxxxxxxxxxxx000000,//ADD.S
        32'b01111010001xxxxxxxxxxxxxxx011100,//FCLEU.D
        32'b01000110001xxxxxxxxxxxxxxx000000,//ADD.D
        32'b01111010000xxxxxxxxxxxxxxx011100,//FCLEU.W
        32'b01111000001xxxxxxxxxxxxxxx011100,//FMIN.D
        32'b01111000000xxxxxxxxxxxxxxx011100,//FMIN.W
        32'b01111000001xxxxxxxxxxxxxxx000001,//SUBSI_S.H
        32'b01111011110xxxxxxxxxxxxxxx000011,//CLTI_U.W
        32'b01111011100xxxxxxxxxxxxxxx000011,//CLTI_U.B
        32'b01111010100xxxxxxxxxxxxxxx000011,//CLTI_S.B
        32'b01111011111xxxxxxxxxxxxxxx000011,//CLTI_U.D
        32'b01111011101xxxxxxxxxxxxxxx000011,//CLTI_U.H
        32'b01111010100xxxxxxxxxxxxxxx010001,//MAX_U.B
        32'b01111010111xxxxxxxxxxxxxxx010001,//MAX_U.D
        32'b01111010101xxxxxxxxxxxxxxx010001,//MAX_U.H
        32'b01111001010xxxxxxxxxxxxxxx010001,//SUBSS_U.W
        32'b01111001001xxxxxxxxxxxxxxx010001,//SUBSS_U.H
        32'b01111010110xxxxxxxxxxxxxxx010001,//MAX_U.W
        32'b01111001000xxxxxxxxxxxxxxx010001,//SUBSS_U.B
        32'b01111001011xxxxxxxxxxxxxxx010001,//SUBSS_U.D
        32'b01111000000xxxxxxxxxxxxxxx010101,//CLE_U.B
        32'b01111000011xxxxxxxxxxxxxxx010101,//CLE_U.D
        32'b01111011010xxxxxxxxxxxxxxx000000,//ASUBI_S.W
        32'b01111011011xxxxxxxxxxxxxxx000000,//ASUBI_S.D
        32'b01111011000xxxxxxxxxxxxxxx000000,//ASUBI_S.B
        32'b01111011001xxxxxxxxxxxxxxx000000,//ASUBI_S.H
        32'b01111011110xxxxxxxxxxxxxxx010001,//MIN_S.W
        32'b01000110000xxxxxxxxxxxxxxx000001,//SUB.S
        32'b01111010010xxxxxxxxxxxxxxx010001,//MAX_S.W
        32'b01111001111xxxxxxxxxxxxxxx011100,//FCLTU.D
        32'b01111011111xxxxxxxxxxxxxxx010001,//MIN_S.D
        32'b01111010001xxxxxxxxxxxxxxx010001,//MAX_S.H
        32'b01000110110xxxxxxxxxxxxxxx000001,//SUB.PS
        32'b01111001110xxxxxxxxxxxxxxx011100,//FCLTU.W
        32'b01111010000xxxxxxxxxxxxxxx010001,//MAX_S.B
        32'b01111010000xxxxxxxxxxxxxxx000011,//CEQI.B
        32'b01111011010xxxxxxxxxxxxxxx010001,//MIN_A.W
        32'b01111010011xxxxxxxxxxxxxxx000011,//CEQI.D
        32'b01111010001xxxxxxxxxxxxxxx000011,//CEQI.H
        32'b01111011011xxxxxxxxxxxxxxx010001,//MIN_A.D
        32'b01111010010xxxxxxxxxxxxxxx000011,//CEQI.W
        32'b01111011000xxxxxxxxxxxxxxx010001,//MIN_A.B
        32'b01111011001xxxxxxxxxxxxxxx010001,//MIN_A.H
        32'b01111010101xxxxxxxxxxxxxxx000011,//CLTI_S.H
        32'b01111000101xxxxxxxxxxxxxxx010010,//AVE_S.H
        32'b01111010111xxxxxxxxxxxxxxx000011,//CLTI_S.D
        32'b01111000111xxxxxxxxxxxxxxx010010,//AVE_S.D
        32'b01111011110xxxxxxxxxxxxxxx000000,//ASUBI_U.W
        32'b01111000100xxxxxxxxxxxxxxx010010,//AVE_S.B
        32'b01111011101xxxxxxxxxxxxxxx000000,//ASUBI_U.H
        32'b01111000110xxxxxxxxxxxxxxx010010,//AVE_S.W
        32'b01111010110xxxxxxxxxxxxxxx000011,//CLTI_S.W
        32'b01111011111xxxxxxxxxxxxxxx000000,//ASUBI_U.D
        32'b01111001010xxxxxxxxxxxxxxx010010,//AVE_U.W
        32'b01111001000xxxxxxxxxxxxxxx010010,//AVE_U.B
        32'b01111001011xxxxxxxxxxxxxxx010010,//AVE_U.D
        32'b01111001001xxxxxxxxxxxxxxx010010://AVE_U.H
            fxu_unit_gen=UNIT_ADD;
        32'b01111001001xxxxxxxxxxxxxxx010101,//PCKEV.H
        32'b01111011110xxxxxxxxxxxxxxx010011,//BINSL.W
        32'b01111001000xxxxxxxxxxxxxxx010101,//PCKEV.B
        32'b01111011101xxxxxxxxxxxxxxx010011,//BINSL.H
        32'b01111011111xxxxxxxxxxxxxxx010011,//BINSL.D
        32'b01111011100xxxxxxxxxxxxxxx010011,//BINSL.B
        32'b0100011000100000xxxxxxxxxx100100,//CVT.W.D
        32'b01111000111xxxxxxxxxxxxxxx010101,//VSHF.D
        32'b01111000100xxxxxxxxxxxxxxx010101,//VSHF.B
        32'b01111000110xxxxxxxxxxxxxxx011110,//SAT_U.W
        32'b01111000101xxxxxxxxxxxxxxx010101,//VSHF.H
        32'b01111000110xxxxxxxxxxxxxxx010101,//VSHF.W
        32'b0111100011110xxxxxxxxxxxxx011110,//SAT_U.B
        32'b0111100010xxxxxxxxxxxxxxxx011110,//SAT_U.D
        32'b0100011000000000xxxxxxxxxx100100,//CVT.W.S
        32'b011110001110xxxxxxxxxxxxxx011110,//SAT_U.H
        32'b01111001011xxxxxxxxxxxxxxx010101,//PCKEV.D
        32'b0111101110000110xxxxxxxxxx001111,//PCNT.W
        32'b0100011000100000xxxxxxxxxx001100,//ROUND.W.D
        32'b011110011110xxxxxxxxxxxxxx011110,//SRAI.H
        32'b0111101110000100xxxxxxxxxx001111,//PCNT.B
        32'b0111101110000111xxxxxxxxxx001111,//PCNT.D
        32'b0100011000000000xxxxxxxxxx001100,//ROUND.W.S
        32'b0111100111110xxxxxxxxxxxxx011110,//SRAI.B
        32'b01111011xxxxxxxxxxxxxxxxxx001010,//XORI.B
        32'b0100011000100000xxxxxxxxxx001010,//CEIL.L.D
        32'b0111101111010101xxxxxxxxxx001111,//FEXUPL.D
        32'b0111101111010100xxxxxxxxxx001111,//FEXUPL.W
        32'b01111001010xxxxxxxxxxxxxxx010101,//PCKEV.W
        32'b0111101111010010xxxxxxxxxx001111,//FFQR.W
        32'b01111011000xxxxxxxxxxxxxxx000111,//S3IL2.B
        32'b0111101111010001xxxxxxxxxx001111,//FFQL.D
        32'b0111101111010011xxxxxxxxxx001111,//FFQR.D
        32'b0111101111010000xxxxxxxxxx001111,//FFQL.W
        32'b01111000110xxxxxxxxxxxxxxx000111,//S3IR1.W
        32'b011110000110xxxxxxxxxxxxxx011110,//SAT_S.H
        32'b0111101111000110xxxxxxxxxx001111,//FCLASS.W
        32'b0111100001110xxxxxxxxxxxxx011110,//SAT_S.B
        32'b01111000100xxxxxxxxxxxxxxx000111,//S3IR1.B
        32'b0111101111000111xxxxxxxxxx001111,//FCLASS.D
        32'b01111000101xxxxxxxxxxxxxxx000111,//S3IR1.H
        32'b0100011000000000xxxxxxxxxx001000,//ROUND.L.S
        32'b0111101000xxxxxxxxxxxxxxxx011110,//SRLI.D
        32'b01111010010xxxxxxxxxxxxxxx011110,//SRLI.W
        32'b01111011001xxxxxxxxxxxxxxx000101,//SE3L2.H
        32'b01111000001xxxxxxxxxxxxxxx010100,//BINSR.H
        32'b01111001011xxxxxxxxxxxxxxx010100,//BSET.D
        32'b01111011000xxxxxxxxxxxxxxx000101,//SE3L2.B
        32'b01111000000xxxxxxxxxxxxxxx010100,//BINSR.B
        32'b01111000011xxxxxxxxxxxxxxx010100,//BINSR.D
        32'b01111001001xxxxxxxxxxxxxxx010100,//BSET.H
        32'b01111000010xxxxxxxxxxxxxxx010100,//BINSR.W
        32'b01111011010xxxxxxxxxxxxxxx000101,//SE3L2.W
        32'b0111101110xxxxxxxxxxxxxxxx011110,//BCLRI.D
        32'b01111001110xxxxxxxxxxxxxxx010100,//BNEG.W
        32'b0111101111010110xxxxxxxxxx001111,//FEXUPR.W
        32'b0111100010xxxxxxxxxxxxxxxx011111,//BNEGI.D
        32'b0111101111110xxxxxxxxxxxxx011110,//BCLRI.B
        32'b0100011000100000xxxxxxxxxx001101,//TRUNC.W.D
        32'b0111101111010111xxxxxxxxxx001111,//FEXUPR.D
        32'b0100011000000000xxxxxxxxxx001101,//TRUNC.W.S
        32'b01111000011xxxxxxxxxxxxxxx001111,//XOR.V
        32'b01000110110xxxxxxxxxxxxxxx101101,//PLU.PS
        32'b01111000000xxxxxxxxxxxxxxx000101,//SE3R0.B
        32'b0100011000000000xxxxxxxxxx001011,//FLOOR.L.S
        32'b01111000010xxxxxxxxxxxxxxx000101,//SE3R0.W
        32'b0100011000100000xxxxxxxxxx001011,//FLOOR.L.D
        32'b01111000110xxxxxxxxxxxxxxx011111,//BNEGI.W
        32'b01111010010xxxxxxxxxxxxxxx000101,//SE3L0.W
        32'b01111010001xxxxxxxxxxxxxxx000101,//SE3L0.H
        32'b01111001110xxxxxxxxxxxxxxx011110,//SRAI.W
        32'b01111001xxxxxxxxxxxxxxxxxx001011,//BMZI.B
        32'b01111010000xxxxxxxxxxxxxxx000101,//SE3L0.B
        32'b01111010100xxxxxxxxxxxxxxx000111,//S3IL1.B
        32'b01111010101xxxxxxxxxxxxxxx000111,//S3IL1.H
        32'b0111101111000011xxxxxxxxxx001111,//FRINT.D
        32'b0111101110000101xxxxxxxxxx001111,//PCNT.H
        32'b0111101111000010xxxxxxxxxx001111,//FRINT.W
        32'b01111010101xxxxxxxxxxxxxxx010011,//SRA.H
        32'b0111100110xxxxxxxxxxxxxxxx011110,//SRAI.D
        32'b01111001010xxxxxxxxxxxxxxx000101,//SE3R2.W
        32'b011110000110xxxxxxxxxxxxxx011010,//MOVE.H
        32'b01111000011110xxxxxxxxxxxx011010,//MOVE.D
        32'b01111000010xxxxxxxxxxxxxxx011010,//MOVE.B
        32'b01111001000xxxxxxxxxxxxxxx000101,//SE3R2.B
        32'b0111100001110xxxxxxxxxxxxx011010,//MOVE.W
        32'b0111100001111110xxxxxxxxxx011010,//MOVE.V
        32'b01111001001xxxxxxxxxxxxxxx000101,//SE3R2.H
        32'b01111010000xxxxxxxxxxxxxxx000111,//S3IL0.B
        32'b0111101110001101xxxxxxxxxx001111,//NLZC.H
        32'b01111000100xxxxxxxxxxxxxxx001111,//BMNZ.V
        32'b0111101110001010xxxxxxxxxx001111,//NLOC.W
        32'b0111101110001000xxxxxxxxxx001111,//NLOC.B
        32'b0111101110001011xxxxxxxxxx001111,//NLOC.D
        32'b0111101110001001xxxxxxxxxx001111,//NLOC.H
        32'b0100011000000000xxxxxxxxxx001010,//CEIL.L.S
        32'b0100011000000000xxxxxxxxxx001001,//TRUNC.L.S
        32'b01111011010xxxxxxxxxxxxxxx010011,//SRL.W
        32'b0111101110001110xxxxxxxxxx001111,//NLZC.W
        32'b0100011000100000xxxxxxxxxx001001,//TRUNC.L.D
        32'b01111011001xxxxxxxxxxxxxxx010011,//SRL.H
        32'b0111101110001100xxxxxxxxxx001111,//NLZC.B
        32'b01111011011xxxxxxxxxxxxxxx010011,//SRL.D
        32'b01111011000xxxxxxxxxxxxxxx010011,//SRL.B
        32'b0111101110001111xxxxxxxxxx001111,//NLZC.D
        32'b01111010010xxxxxxxxxxxxxxx011100,//FTQ.H
        32'b01000110000xxxxxxxxxxxxxxx100110,//CVT.PS.S
        32'b0111101101110xxxxxxxxxxxxx011110,//BINSRI.B
        32'b01111010010xxxxxxxxxxxxxxx010101,//ILVL.W
        32'b01111010101xxxxxxxxxxxxxxx010101,//ILVR.H
        32'b0111101100xxxxxxxxxxxxxxxx011110,//BINSRI.D
        32'b01111010100xxxxxxxxxxxxxxx010101,//ILVR.B
        32'b011110110110xxxxxxxxxxxxxx011110,//BINSRI.H
        32'b01111010111xxxxxxxxxxxxxxx010101,//ILVR.D
        32'b01111010011xxxxxxxxxxxxxxx010101,//ILVL.D
        32'b01111011010xxxxxxxxxxxxxxx011110,//BINSRI.W
        32'b01111010000xxxxxxxxxxxxxxx010101,//ILVL.B
        32'b01111010110xxxxxxxxxxxxxxx010101,//ILVR.W
        32'b01111010001xxxxxxxxxxxxxxx010101,//ILVL.H
        32'b01111001101xxxxxxxxxxxxxxx010101,//PCKOD.H
        32'b01111001111xxxxxxxxxxxxxxx010101,//PCKOD.D
        32'b01111010xxxxxxxxxxxxxxxxxx001011,//BSELI.B
        32'b01111001110xxxxxxxxxxxxxxx010101,//PCKOD.W
        32'b0100011000100000xxxxxxxxxx001110,//CEIL.W.D
        32'b01111000101xxxxxxxxxxxxxxx001111,//BMZ.V
        32'b0100011000000000xxxxxxxxxx001110,//CEIL.W.S
        32'b0100011011000000xxxxxxxxxx000110,//MOV.PS
        32'b01111011110xxxxxxxxxxxxxxx011110,//BCLRI.W
        32'b0100011000100000xxxxxxxxxx001000,//ROUND.L.D
        32'b011110111110xxxxxxxxxxxxxx011110,//BCLRI.H
        32'b01111010110xxxxxxxxxxxxxxx000111,//S3IL1.W
        32'b01000110110xxxxxxxxxxxxxxx101110,//PUL.PS
        32'b01111000010xxxxxxxxxxxxxxx011110,//SAT_S.W
        32'b01111010011xxxxxxxxxxxxxxx011100,//FTQ.W
        32'b0100011000100000xxxxxxxxxx000110,//MOV.D
        32'b0100011000000000xxxxxxxxxx000110,//MOV.S
        32'b01111010100xxxxxxxxxxxxxxx000101,//SE3L1.B
        32'b0111101111001000xxxxxxxxxx001111,//FTINT_S.W
        32'b01111010110xxxxxxxxxxxxxxx000101,//SE3L1.W
        32'b01111001xxxxxxxxxxxxxxxxxx001010,//ORI.B
        32'b0111101111001001xxxxxxxxxx001111,//FTINT_S.D
        32'b01000110110xxxxxxxxxxxxxxx101111,//PUU.PS
        32'b01111001xxxxxxxxxxxxxxxxxx001100,//SHF.W
        32'b01111000110xxxxxxxxxxxxxxx001111,//BSEL.V
        32'b01111011xxxxxxxxxxxxxxxxxx001011,//SHF.B
        32'b01111000xxxxxxxxxxxxxxxxxx001100,//SHF.H
        32'b0111100000xxxxxxxxxxxxxxxx011110,//SAT_S.D
        32'b0100011000100000xxxxxxxxxx100101,//CVT.L.D
        32'b0100011000000000xxxxxxxxxx100101,//CVT.L.S
        32'b01000110110xxxxxxxxxxxxxxx101100,//PLL.PS
        32'b01111000010xxxxxxxxxxxxxxx001111,//NOR.V
        32'b0111101111001010xxxxxxxxxx001111,//FFINT_S.W
        32'b0111101111001101xxxxxxxxxx001111,//FTINT_U.D
        32'b01111001000xxxxxxxxxxxxxxx000111,//S3IR2.B
        32'b01111010100xxxxxxxxxxxxxxx011100,//FEXDO.H
        32'b01111001001xxxxxxxxxxxxxxx000111,//S3IR2.H
        32'b0111101111001100xxxxxxxxxx001111,//FTINT_U.W
        32'b01111010101xxxxxxxxxxxxxxx011100,//FEXDO.W
        32'b01111011110xxxxxxxxxxxxxxx010101,//ILVOD.W
        32'b01111011100xxxxxxxxxxxxxxx010101,//ILVOD.B
        32'b01111011111xxxxxxxxxxxxxxx010101,//ILVOD.D
        32'b01111011101xxxxxxxxxxxxxxx010101,//ILVOD.H
        32'b01111001010xxxxxxxxxxxxxxx001110,//LDI.W
        32'b01111000xxxxxxxxxxxxxxxxxx001010,//ANDI.B
        32'b01111001001xxxxxxxxxxxxxxx001110,//LDI.H
        32'b01111001000xxxxxxxxxxxxxxx001110,//LDI.B
        32'b01111001011xxxxxxxxxxxxxxx001110,//LDI.D
        32'b01111000010xxxxxxxxxxxxxxx000111,//S3IR0.W
        32'b0111101111001011xxxxxxxxxx001111,//FFINT_S.D
        32'b01111001000xxxxxxxxxxxxxxx010100,//BSET.B
        32'b011110100110xxxxxxxxxxxxxx011110,//SRLI.H
        32'b01111000000xxxxxxxxxxxxxxx000111,//S3IR0.B
        32'b01111000001xxxxxxxxxxxxxxx000111,//S3IR0.H
        32'b0111101001110xxxxxxxxxxxxx011110,//SRLI.B
        32'b0100011010100000xxxxxxxxxx100000,//CVT.S.L
        32'b011110001110xxxxxxxxxxxxxx011111,//BNEGI.H
        32'b0111100011110xxxxxxxxxxxxx011111,//BNEGI.B
        32'b0100011011000000xxxxxxxxxx000101,//ABS.PS
        32'b01111001101xxxxxxxxxxxxxxx010100,//BNEG.H
        32'b0100011011000000xxxxxxxxxx000111,//NEG.PS
        32'b01111001111xxxxxxxxxxxxxxx010100,//BNEG.D
        32'b01111001100xxxxxxxxxxxxxxx010100,//BNEG.B
        32'b01111001010xxxxxxxxxxxxxxx000111,//S3IR2.W
        32'b01111000001xxxxxxxxxxxxxxx001111,//OR.V
        32'b0100011000100000xxxxxxxxxx100000,//CVT.S.D
        32'b01111000001xxxxxxxxxxxxxxx000101,//SE3R0.H
        32'b01111001010xxxxxxxxxxxxxxx011110,//SHLI.W
        32'b0100011000000000xxxxxxxxxx100001,//CVT.D.S
        32'b0100011010000000xxxxxxxxxx100001,//CVT.D.W
        32'b0111100101110xxxxxxxxxxxxx011110,//SHLI.B
        32'b0111100100xxxxxxxxxxxxxxxx011110,//SHLI.D
        32'b0100011010100000xxxxxxxxxx100001,//CVT.D.L
        32'b011110010110xxxxxxxxxxxxxx011110,//SHLI.H
        32'b01111000100xxxxxxxxxxxxxxx000101,//SE3R1.B
        32'b01111000xxxxxxxxxxxxxxxxxx001011,//BMNZI.B
        32'b0111101011110xxxxxxxxxxxxx011110,//BINSLI.B
        32'b0111101010xxxxxxxxxxxxxxxx011110,//BINSLI.D
        32'b011110101110xxxxxxxxxxxxxx011110,//BINSLI.H
        32'b01111010110xxxxxxxxxxxxxxx011110,//BINSLI.W
        32'b01111000101xxxxxxxxxxxxxxx000101,//SE3R1.H
        32'b01111010010xxxxxxxxxxxxxxx010011,//SHL.W
        32'b01111010001xxxxxxxxxxxxxxx010011,//SHL.H
        32'b01111010011xxxxxxxxxxxxxxx010011,//SHL.D
        32'b0100011000100000xxxxxxxxxx001111,//FLOOR.W.D
        32'b01111010000xxxxxxxxxxxxxxx010011,//SHL.B
        32'b0100011011000000xxxxxxxxxx101000,//CVT.S.PL
        32'b01111011010xxxxxxxxxxxxxxx000111,//S3IL2.W
        32'b01111011001xxxxxxxxxxxxxxx000111,//S3IL2.H
        32'b0100011000000000xxxxxxxxxx001111,//FLOOR.W.S
        32'b0100011011000000xxxxxxxxxx100000,//CVT.S.PU
        32'b01111000110xxxxxxxxxxxxxxx000101,//SE3R1.W
        32'b01111000110xxxxxxxxxxxxxxx010100,//BCLR.W
        32'b01111000101xxxxxxxxxxxxxxx010100,//BCLR.H
        32'b01111000100xxxxxxxxxxxxxxx010100,//BCLR.B
        32'b01111000111xxxxxxxxxxxxxxx010100,//BCLR.D
        32'b0111101111001111xxxxxxxxxx001111,//FFINT_U.D
        32'b01111000010xxxxxxxxxxxxxxx011111,//BSETI.W
        32'b01111011010xxxxxxxxxxxxxxx010101,//ILVEV.W
        32'b01111001010xxxxxxxxxxxxxxx010100,//BSET.W
        32'b0111100000xxxxxxxxxxxxxxxx011111,//BSETI.D
        32'b0111101111001110xxxxxxxxxx001111,//FFINT_U.W
        32'b0111100001110xxxxxxxxxxxxx011111,//BSETI.B
        32'b01111011001xxxxxxxxxxxxxxx010101,//ILVEV.H
        32'b01111011011xxxxxxxxxxxxxxx010101,//ILVEV.D
        32'b01111011000xxxxxxxxxxxxxxx010101,//ILVEV.B
        32'b011110000110xxxxxxxxxxxxxx011111,//BSETI.H
        32'b0111101111000101xxxxxxxxxx001111,//FLOG2.D
        32'b0111101111000100xxxxxxxxxx001111,//FLOG2.W
        32'b01111010001xxxxxxxxxxxxxxx000111,//S3IL0.H
        32'b01111010111xxxxxxxxxxxxxxx010011,//SRA.D
        32'b01111010100xxxxxxxxxxxxxxx010011,//SRA.B
        32'b01111010110xxxxxxxxxxxxxxx010011,//SRA.W
        32'b01111010010xxxxxxxxxxxxxxx000111,//S3IL0.W
        32'b0100011000100000xxxxxxxxxx000101,//ABS.D
        32'b01111010xxxxxxxxxxxxxxxxxx001010,//NORI.B
        32'b0100011000000000xxxxxxxxxx000111,//NEG.S
        32'b0100011000100000xxxxxxxxxx000111,//NEG.D
        32'b01111011010xxxxxxxxxxxxxxx011011,//FEXP2.W
        32'b01111001100xxxxxxxxxxxxxxx010101,//PCKOD.B
        32'b0100011010000000xxxxxxxxxx100000,//CVT.S.W
        32'b01111011011xxxxxxxxxxxxxxx011011,//FEXP2.D
        32'b01111000000xxxxxxxxxxxxxxx001111,//AND.V
        32'b0100011000000000xxxxxxxxxx000101,//ABS.S
        32'b01111010101xxxxxxxxxxxxxxx000101://SE3L1.H
            fxu_unit_gen=UNIT_MSC;
        32'b011110001010xxxxxxxxxxxxxx011010,//MVTG_S.H
        32'b010011xxxxxxxxxxxxxxx00000001101,//SUXC1
        32'b111001xxxxxxxxxxxxxxxxxxxxxxxxxx,//SWC1
        32'b01111001100xxxxxxxxxxxxxxx010110,//SLDR.B
        32'b01000110110xxx00xxxxxxxxxx010001,//MOVF.PS
        32'b110001xxxxxxxxxxxxxxxxxxxxxxxxxx,//LWC1
        32'b01000100010xxxxxxxxxx00000000000,//CFC1
        32'b01000110001xxxxxxxxxxxxx0011xxxx,//C.cond.D
        32'b01000100011xxxxxxxxxx00000000000,//MFHC1
        32'b010011xxxxxxxxxxxxxxxxxxxx011110,//ALNV.PS
        32'b010011xxxxxxxxxx00000xxxxx000101,//LUXC1
        32'b0111100011111110xxxxxxxxxx011010,//CFCMSA
        32'b01111001111xxxxxxxxxxxxxxx010110,//SLDR.D
        32'b01111001001xxxxxxxxxxxxxxx010110,//MVTGR_U.H
        32'b01111001101xxxxxxxxxxxxxxx001111,//ST.V
        32'b01111000100xxxxxxxxxxxxxxx011010,//MVTG_S.B
        32'b01111000001110xxxxxxxxxxxx011010,//SLD.D
        32'b01000110110xxx01xxxxxxxxxx010001,//MOVT.PS
        32'b010011xxxxxxxxxxxxxxx00000001000,//SWXC1
        32'b0111100010110xxxxxxxxxxxxx011010,//MVTG_S.W
        32'b010011xxxxxxxxxx00000xxxxx000000,//LWXC1
        32'b01111001100xxxxxxxxxxxxxxx001111,//LDX.V
        32'b01111000100xxxxxxxxxxxxxxx010110,//MVTGR_S.B
        32'b0111100100110xxxxxxxxxxxxx011010,//MVFGE.W
        32'b01111001010xxxxxxxxxxxxxxx010110,//MVTGR_U.W
        32'b01111001101xxxxxxxxxxxxxxx010110,//SLDR.H
        32'b01000101000xxx10xxxxxxxxxxxxxxxx,//BC1FL
        32'b01000101000xxx11xxxxxxxxxxxxxxxx,//BC1TL
        32'b0111100010111110xxxxxxxxxx011010,//CTCMSA
        32'b01111000110xxxxxxxxxxxxxxx010110,//MVTGR_S.W
        32'b010011xxxxxxxxxxxxxxx00000001001,//SDXC1
        32'b01111000110xxxxxxxxxxxxxxx011010,//MVTG_U.B
        32'b011110001110xxxxxxxxxxxxxx011010,//MVTG_U.H
        32'b0111100011110xxxxxxxxxxxxx011010,//MVTG_U.W
        32'b01000110110xxxxxxxxxxxxxxx010011,//MOVN.PS
        32'b01000110001xxxxxxxxxxxxxxx010010,//MOVZ.D
        32'b01000101000xxx01xxxxxxxxxxxxxxxx,//BC1T
        32'b01000101000xxx00xxxxxxxxxxxxxxxx,//BC1F
        32'b01000100111xxxxxxxxxx00000000000,//MTHC1
        32'b110101xxxxxxxxxxxxxxxxxxxxxxxxxx,//LDC1
        32'b01111001110xxxxxxxxxxxxxxx010110,//SLDR.W
        32'b01111000011xxxxxxxxxxxxxxx001110,//BNZ.D
        32'b01000100100xxxxxxxxxx00000000000,//MTC1
        32'b01111000101xxxxxxxxxxxxxxx010110,//MVTGR_S.H
        32'b0111100000110xxxxxxxxxxxxx011010,//SLD.W
        32'b01000100110xxxxxxxxxx00000000000,//CTC1
        32'b01111001110xxxxxxxxxxxxxxx001111,//STX.V
        32'b01111000010xxxxxxxxxxxxxxx010110,//MOVER.W
        32'b01111000001xxxxxxxxxxxxxxx010110,//MOVER.H
        32'b01111000011xxxxxxxxxxxxxxx010110,//MOVER.D
        32'b01111000000xxxxxxxxxxxxxxx010110,//MOVER.B
        32'b01000110000xxxxxxxxxxxxxxx010010,//MOVZ.S
        32'b01000110001xxxxxxxxxxxxxxx010011,//MOVN.D
        32'b01000110000xxxxxxxxxxxxxxx010011,//MOVN.S
        32'b011110010010xxxxxxxxxxxxxx011010,//MVFGE.H
        32'b01111001011xxxxxxxxxxxxxxx001111,//LD.V
        32'b01111001000xxxxxxxxxxxxxxx011010,//MVFGE.B
        32'b01000110000xxx00xxxxxxxxxx010001,//MOVF.S
        32'b01000100000xxxxxxxxxx00000000000,//MFC1
        32'b01000110001xxx00xxxxxxxxxx010001,//MOVF.D
        32'b01111010010xxxxxxxxxxxxxxx010110,//MVFGER.W
        32'b01111010001xxxxxxxxxxxxxxx010110,//MVFGER.H
        32'b01111010000xxxxxxxxxxxxxxx010110,//MVFGER.B
        32'b0111101110000010xxxxxxxxxx001111,//MVFG.W
        32'b000000xxxxxxxx00xxxxx00000000001,//MOVF
        32'b01000110000xxxxxxxxxxxxx0011xxxx,//C.cond.S
        32'b0111101110000000xxxxxxxxxx001111,//MVFG.B
        32'b000000xxxxxxxx01xxxxx00000000001,//MOVT
        32'b0111101110000001xxxxxxxxxx001111,//MVFG.H
        32'b010011xxxxxxxxxx00000xxxxx000001,//LDXC1
        32'b01111000111xxxxxxxxxxxxxxx001111,//BNZ.V
        32'b01111000001xxxxxxxxxxxxxxx001110,//BNZ.H
        32'b01111000010xxxxxxxxxxxxxxx001110,//BNZ.W
        32'b01111000000xxxxxxxxxxxxxxx001110,//BNZ.B
        32'b01000110000xxx01xxxxxxxxxx010001,//MOVT.S
        32'b01000110001xxx01xxxxxxxxxx010001,//MOVT.D
        32'b01111000101xxxxxxxxxxxxxxx001110,//BZ.H
        32'b01111000100xxxxxxxxxxxxxxx001110,//BZ.B
        32'b01111000111xxxxxxxxxxxxxxx001110,//BZ.D
        32'b01111001000xxxxxxxxxxxxxxx001111,//BZ.V
        32'b01111000110xxxxxxxxxxxxxxx001110,//BZ.W
        32'b111101xxxxxxxxxxxxxxxxxxxxxxxxxx,//SDC1
        32'b01000110110xxxxxxxxxxxxx0011xxxx,//C.cond.PS
        32'b01000110110xxxxxxxxxxxxxxx010010,//MOVZ.PS
        32'b011110000010xxxxxxxxxxxxxx011010,//SLD.H
        32'b01111000000xxxxxxxxxxxxxxx011010,//SLD.B
        32'b01111001000xxxxxxxxxxxxxxx010110://MVTGR_U.B
            fxu_unit_gen=UNIT_XCG;
    endcase
    end
endfunction

